java设置jdialog背景(java jdialog)

发布时间:2022-11-08

本文目录一览:

  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:\project\project1\ 下就是你的当前项目的根目录(其中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); //关闭对话框
    }
}