本文目录一览:
- 1、java JDialog界面制作
- 2、java如何改变JDialog的背景颜色?
- 3、jDialog已添加两个JPanel,如何给jDialog添加背景图片啊,并且JPanel是透明的,求大神!
- 4、java swing Jpanel 怎么添加一个Jdialog弹出框
- 5、java jdialog 怎么用
- 6、java中JDialog的用法?
java JDialog界面制作
/**
*
* @author Administrator
*/
public class JFontChooser extends javax.swing.JDialog {
Font[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();
String formats[] = new String[]{"无格式", "粗体", "斜体", "粗斜体"};
boolean initFlag = true;
/** Creates new form JFontChooser */
public JFontChooser(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
this.jFormattedTextField1.setValue(fonts[0].getSize());
fontNameList.setSelectedIndex(0);
this.jList1.setSelectedIndex(0);
}
private void reSetPreviewValue() {
Font fontTemp = fonts[fontNameList.getSelectedIndex()];
Font font = new Font(fontTemp.getFontName(), this.jList1.getSelectedIndex(), 20);
this.previewLabel.setText(this.fontNameLabel.getText() + " " + this.formatLabel.getText());
previewLabel.setFont(font);
// this.previewLabel.setText("abc");
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// editor-fold defaultstate="collapsed" desc="Generated Code"
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
jPanel1 = new javax.swing.JPanel();
previewLabel = new javax.swing.JLabel();
jPanel3 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
fontNameList = new javax.swing.JList();
fontNameLabel = new javax.swing.JLabel();
fontTitleLabel = new javax.swing.JLabel();
jPanel6 = new javax.swing.JPanel();
formatLabel = new javax.swing.JLabel();
fontformatTitleLabel = new javax.swing.JLabel();
jScrollPane2 = new javax.swing.JScrollPane();
jList1 = new javax.swing.JList(formats);
jPanel5 = new javax.swing.JPanel();
sizeTitleLabel = new javax.swing.JLabel();
jFormattedTextField1 = new javax.swing.JFormattedTextField();
jScrollPane3 = new javax.swing.JScrollPane();
jList2 = new javax.swing.JList();
jPanel4 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("FontChooser");
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("预览"));
jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, javax.swing.BoxLayout.LINE_AXIS));
previewLabel.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
previewLabel.setText("abcdef");
jPanel1.add(previewLabel);
getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 190, 150, 50));
jPanel3.setLayout(new java.awt.GridBagLayout());
jScrollPane1.setPreferredSize(new java.awt.Dimension(0, 0));
DefaultListModel model = new DefaultListModel();
for (int i = 0; i fonts.length; i++) {
model.addElement(fonts[i].getFontName());
}
fontNameList.setModel(model);
fontNameList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
fontNameListValueChanged(evt);
}
});
jScrollPane1.setViewportView(fontNameList);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.ipadx = 80;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
jPanel3.add(jScrollPane1, gridBagConstraints);
fontNameLabel.setText(" ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel3.add(fontNameLabel, gridBagConstraints);
fontTitleLabel.setText("字体");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.ipady = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel3.add(fontTitleLabel, gridBagConstraints);
getContentPane().add(jPanel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(8, 3, 190, 185));
jPanel6.setLayout(new java.awt.GridBagLayout());
formatLabel.setText(" ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
jPanel6.add(formatLabel, gridBagConstraints);
fontformatTitleLabel.setText("字体样式");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
jPanel6.add(fontformatTitleLabel, gridBagConstraints);
jScrollPane2.setPreferredSize(new java.awt.Dimension(24, 24));
jList1.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
jList1ValueChanged(evt);
}
});
jScrollPane2.setViewportView(jList1);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.ipadx = 80;
gridBagConstraints.ipady = 135;
jPanel6.add(jScrollPane2, gridBagConstraints);
getContentPane().add(jPanel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 0, 107, 190));
jPanel5.setLayout(new java.awt.GridBagLayout());
sizeTitleLabel.setText("大小");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.ipady = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel5.add(sizeTitleLabel, gridBagConstraints);
jFormattedTextField1.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(java.text.NumberFormat.getIntegerInstance())));
jFormattedTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jFormattedTextField1ActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.ipadx = 34;
gridBagConstraints.ipady = -1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel5.add(jFormattedTextField1, gridBagConstraints);
jList2.setModel(new javax.swing.AbstractListModel() {
String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
public int getSize() { return strings.length; }
public Object getElementAt(int i) { return strings[i]; }
});
jScrollPane3.setViewportView(jList2);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.ipadx = 17;
gridBagConstraints.ipady = 115;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
jPanel5.add(jScrollPane3, gridBagConstraints);
getContentPane().add(jPanel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(310, 0, 44, 190));
jPanel4.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jPanel4.setLayout(new java.awt.GridBagLayout());
jButton1.setText("确定");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel4.add(jButton1, gridBagConstraints);
jButton2.setText("取消");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
jPanel4.add(jButton2, gridBagConstraints);
getContentPane().add(jPanel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(350, 0, -1, -1));
pack();
}// /editor-fold
private void fontNameListValueChanged(javax.swing.event.ListSelectionEvent evt) {
int index = this.fontNameList.getSelectedIndex();
if (index = 0) {
this.fontNameLabel.setText(fontNameList.getSelectedValue().toString());
reSetPreviewValue();
}
}
private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) {
int index = jList1.getSelectedIndex();
if (index = 0) {
this.formatLabel.setText(jList1.getSelectedValue().toString());
reSetPreviewValue();
}
}
private void jFormattedTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
JFontChooser dialog = new JFontChooser(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel fontNameLabel;
private javax.swing.JList fontNameList;
private javax.swing.JLabel fontTitleLabel;
private javax.swing.JLabel fontformatTitleLabel;
private javax.swing.JLabel formatLabel;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JFormattedTextField jFormattedTextField1;
private javax.swing.JList jList1;
private javax.swing.JList jList2;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JPanel jPanel6;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JLabel previewLabel;
private javax.swing.JLabel sizeTitleLabel;
// End of variables declaration
}
这个是用netBeans托好的界面,功能也完成了一部分,你参考一下,当初做了玩玩的,做了个半成品。
java如何改变JDialog的背景颜色?
java.lang.Object java.awt.Component java.awt.Container java.awt.Window java.awt.Dialog javax.swing.JDialog
Methods inherited from class java.awt.Component
setBackground
jDialog已添加两个JPanel,如何给jDialog添加背景图片啊,并且JPanel是透明的,求大神!
按照你的要求给jDialog添加背景图片的Java程序如下
注意 背景图片要放在Java当前项目的根目录下
比如你的当前项目名是project1, 在D:projectproject1 下就是你的当前项目的根目录(其中D:project只是打个比方,以你的实际目录为准)
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
public class D {
D(){
JDialog jDialog = new JDialog();
jDialog.setSize(400, 200);
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
Container container = jDialog.getContentPane();
JPanel panelBg=new JPanel();
JPanel panelContent=new JPanel();
JLayeredPane lp=new JLayeredPane();
Dimension dimension = new Dimension(jDialog.getWidth(), jDialog.getHeight());
lp.setSize(dimension);
panelContent.setLayout(new BorderLayout());
Image imageBg = Toolkit.getDefaultToolkit().getImage("autumn1.jpg");
ImageIcon imageIcon = new ImageIcon(imageBg.getScaledInstance
(dimension.width, dimension.height, Image.SCALE_FAST));
JLabel jl1 = new JLabel(imageIcon);
Point origin = new Point(0, 0);
Rectangle rectangle = new Rectangle(origin, dimension);
panelBg.setBounds(rectangle);
panelBg.setLayout(new BorderLayout());
panelBg.add(jl1,BorderLayout.CENTER);
JLabel jl = new JLabel("正在测量......");
jp1.add(jl);
JButton jb = new JButton("取消");
jp2.add(jb);
jp1.setOpaque(false);
jp2.setOpaque(false);
panelContent.setBounds(rectangle);
panelContent.add(jp1,BorderLayout.CENTER);
panelContent.add(jp2,BorderLayout.SOUTH);
panelContent.setOpaque(false);
lp.add(panelBg,new Integer(0));
lp.add(panelContent, new Integer(1));
container.add(lp, BorderLayout.CENTER);
jDialog.setUndecorated(true);
jDialog.setLocationRelativeTo(null);
jDialog.setVisible(true);
}
public static void main(String[] args) {
new D();
}
}
运行结果
java swing Jpanel 怎么添加一个Jdialog弹出框
通过: 弹出框, 顾名思义就是刚开始看不见, 触发某个事件后弹出的一个框
所以 我们要让JPanel响应指定的事件然后弹出 . 比如常见的事件, 鼠标点击JPanel后弹出
弹出框. 一般有两种方法实现
方法一:JOptionPane 创建1个简单的弹出框.(代码量少, 效果简单)
方法二Dialog/JDialog 创建1个弹出框.(代码量长,可以实现复杂的效果)
效果图
参考代码
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Demo extends JFrame {
JPanel jp;
static final String title = "Message";
static final String content = "Eggs aren't supposed to be green.";
public Demo() {
jp = new JPanel();
jp.setBackground(Color.PINK);
jp.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//方法1
JOptionPane.showMessageDialog(null, content, title, JOptionPane.INFORMATION_MESSAGE);
//方法2
new MyDailog(title, content).setVisible(true);// 创建1个对话框,并且设置为可见
}
});
add(jp);
setTitle("测试Demo");// 标题
setSize(280, 280);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口点击关闭时,退出程序
setVisible(true);// 窗口可见
}
public static void main(String[] args) {
new Demo();
}
}
// 对话框类
class MyDailog extends JDialog implements ActionListener {
String title;
String content;
public MyDailog(String title, String content) {
this.title = title;
this.content = content;
ImageIcon icon = new ImageIcon("tp.png");// 创建1个图标实例
JLabel jlImg = new JLabel(icon);// 1个图片标签,显示图片
JLabel jl = new JLabel(content);// 1个文字标签,显示文本
jl.setForeground(Color.BLUE);// 设置文字的颜色为蓝色
JButton jb = new JButton("确定");// 创建1个按钮
jb.addActionListener(this);// 给按钮添加响应事件
add(jlImg);// 向对话框加入图片标签
add(jl);// 向对话框加入文字标签
add(jb);// 向对话框添加按钮
setLayout(new FlowLayout());// 对话框流式布局
setIconImage(icon.getImage());// 窗口左上角的小图标
setTitle(title);// 设置标题
setModal(true);// 设置为模态窗口
setSize(275, 135);// 设置对话框大小
setLocationRelativeTo(null);// 对话框局域屏幕中央
setResizable(false);// 对话框不可缩放
setDefaultCloseOperation(DISPOSE_ON_CLOSE);// 当对话框窗口的关闭按钮[X]被点击时,销毁对话框
}
// 当确定按钮被点击时会执行下面的方法
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("确定")) {// 判断是不是确定按钮被点击
this.setVisible(false);// 对话框不可见
this.dispose();// 对话框销毁
}
}
}
java jdialog 怎么用
JDialog 对话框 , 一般用于满足比较复杂的弹出对话框, 比如 很多的输入框, 很多的按钮等情况
JOptionPane 也是对话框, 但是它一般只用于简单的提示, 输入, 选择, 警告 , 不能进行复杂的自定义.
下面写1个简单的使用JDialog来提示的对话框
import javax.swing.*;
import java.awt.event.*;
public class DialogFrame extends JFrame implements ActionListener {
JPanel jp1;
JTextField jtf;
JButton jb1;
public DialogFrame() {
jp1 = new JPanel();
JLabel jl1 = new JLabel("请输入用户名");
jtf = new JTextField(8);
jb1 = new JButton("确定");
jb1.addActionListener(this);
jp1.add(jl1);
jp1.add(jtf);
jp1.add(jb1);
add(jp1);
// 窗口属性设置
setTitle("JFrame");// 标题
setSize(380, 180);// 窗口大小
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口点击关闭时,退出程序
}
public static void main(String[] args) {
new DialogFrame().setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (jb1 == e.getSource()) {
String name = jtf.getText().trim();
if (name.equals("")) {// 验证是否输入了有效的字符串
// 字符串为"", 那么弹出对话框进行提示
new TPDialog(this, "提示", true, "Sorry! 用户名必须填写,不能为空!");
// 第一个参数 this 代表了本JFrame对象
// 第二个参数 标题
// 第三个参数 true表示模态窗口, 该窗口置顶,并且如果不关闭,无法点击其他的组件
// 第四个参数 表示了对话框要弹出的信息内容是什么
}
}
}
}
class TPDialog extends JDialog {
public TPDialog(JFrame jf, String title, boolean flag, String info) {
super(jf, title, flag); //调用父类的构造器
// 第一个参数 this 代表了本JFrame对象
// 第二个参数 标题
// 第三个参数 true表示模态窗口, 该窗口置顶,并且如果不关闭,无法点击其他的组件
JLabel jl = new JLabel(info);
add(jl);
setSize(230, 100);//大小
setLocationRelativeTo(null);//居中
setVisible(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);//点击关闭时,销毁对话框
}
}
效果显示
java中JDialog的用法?
Dialog1 实际上是创建一个对话框,实现代码如下:
class Dialog1 {
JDialog jd=new JDialog(jf,"JDialog窗体",true);
Dialog1(){
jd.setSize(300,200);
Container c2=jd.getContentPane();
c2.setLayout(null);
JLabel jl=new JLabel("只是一个对话框");
jl.setBounds(0,-20,100,100);
JButton jbb=new JButton("确定");
jbb.setBounds(100,100,60,30);
c2.add(jl);
c2.add(jbb);
jbb.addActionListener(new ActionListener(){ //对按钮增加监听事件
@Override
public void actionPerformed(ActionEvent e) {
jd.dispose(); //关闭窗体
}
});
System.out.println("OK");
jd.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); //关闭对话框
}
}