📜  Java摇摆 |带有示例的 JDialog

📅  最后修改于: 2022-05-13 01:54:23.003000             🧑  作者: Mango

Java摇摆 |带有示例的 JDialog

JDialog 是Java swing 包的一部分。对话框的主要目的是向其中添加组件。 JDialog可以根据用户需要定制。
类的构造函数是:

  1. JDialog() : 创建一个没有任何标题或任何指定所有者的空对话框
  2. JDialog(Frame o) : 创建一个空对话框,指定框架为所有者
  3. JDialog(Frame o, String s) : 创建一个以指定框架为所有者的空对话框
    和指定的标题
  4. JDialog(Window o) : 创建一个以指定窗口为所有者的空对话框
  5. JDialog(Window o, String t) : 创建一个空对话框,指定窗口为所有者,指定标题。
  6. JDialog(Dialog o) :创建一个空对话框,指定对话框为其所有者
  7. JDialog(Dialog o, String s) : 创建一个空对话框,指定对话框作为它的所有者和指定的标题。

常用方法

  1. setLayout(LayoutManager m) : 将对话框的布局设置为指定的布局管理器
  2. setJMenuBar(JMenuBar m) : 将对话框的菜单栏设置为指定的菜单栏
  3. add(Component c) : 将组件添加到对话框
  4. isVisible(boolean b) : 设置对话框的可见性,如果布尔值为真则可见,否则不可见
  5. update(Graphics g) : 调用paint(g)函数
  6. remove(Component c) : 移除组件 c
  7. getGraphics() :返回组件的图形上下文。
  8. getLayeredPane() :返回对话框的分层窗格
  9. setContentPane(Container c) :设置对话框的内容窗格
  10. setLayeredPane(JLayeredPane l) :设置对话框的分层窗格
  11. setRootPane(JRootPane r) : 设置对话框的 rootPane
  12. getJMenuBar() :返回组件的菜单栏
  13. setTransferHandler(TransferHandler n) :设置 transferHandler 属性,这是一种支持将数据传输到此组件的机制。
  14. setRootPaneCheckingEnabled(boolean enabled) :设置对 add 和 setLayout 的调用是否转发到 contentPane。
  15. setRootPane(JRootPane root) :设置对话框的 rootPane 属性。
  16. setGlassPane(Component glass) :设置对话框的 glassPane 属性。
  17. repaint(long time, int x, int y, int width, int height) : 在 time 毫秒内重绘该组件的指定矩形。
  18. remove(Component c) :从对话框中删除指定的组件。
  19. isRootPaneCheckingEnabled() :返回对 add 和 setLayout 的调用是否转发到 contentPane 。
  20. getTransferHandler() :返回 transferHandler 属性。
  21. getRootPane() :返回此对话框的 rootPane 对象。
  22. getGlassPane() :返回此对话框的 glassPane 对象。
  23. createRootPane() :由构造方法调用以创建默认的 rootPane。
  24. addImpl(Component co, Object c, int i) :将指定的子组件添加到对话框中。

以下程序将说明 JDialog 的使用
1 .Program创建一个简单的JDialog

Java
// java Program to create a simple JDialog
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
class solve extends JFrame implements ActionListener {
 
    // frame
    static JFrame f;
 
    // main class
    public static void main(String[] args)
    {
        // create a new frame
        f = new JFrame("frame");
 
        // create a object
        solve s = new solve();
 
        // create a panel
        JPanel p = new JPanel();
 
        JButton b = new JButton("click");
 
        // add actionlistener to button
        b.addActionListener(s);
 
        // add button to panel
        p.add(b);
 
        f.add(p);
 
        // set the size of frame
        f.setSize(400, 400);
 
        f.show();
    }
    public void actionPerformed(ActionEvent e)
    {
        String s = e.getActionCommand();
        if (s.equals("click")) {
            // create a dialog Box
            JDialog d = new JDialog(f, "dialog Box");
 
            // create a label
            JLabel l = new JLabel("this is a dialog box");
 
            d.add(l);
 
            // setsize of dialog
            d.setSize(100, 100);
 
            // set visibility of dialog
            d.setVisible(true);
        }
    }
}


Java
// java Program to create a dialog within a dialog
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
class solve extends JFrame implements ActionListener {
 
    // frame
    static JFrame f;
 
    // dialog
    static JDialog d, d1;
 
    // main class
    public static void main(String[] args)
    {
        // create a new frame
        f = new JFrame("frame");
 
        // create a object
        solve s = new solve();
 
        // create a panel
        JPanel p = new JPanel();
 
        JButton b = new JButton("click");
 
        // add actionlistener to button
        b.addActionListener(s);
 
        // add button to panel
        p.add(b);
 
        f.add(p);
 
        // set the size of frame
        f.setSize(400, 400);
 
        f.show();
    }
    public void actionPerformed(ActionEvent e)
    {
        String s = e.getActionCommand();
        if (s.equals("click")) {
            // create a dialog Box
            d = new JDialog(f, "dialog Box");
 
            // create a label
            JLabel l = new JLabel("this is first dialog box");
 
            // create a button
            JButton b = new JButton("click me");
 
            // add Action Listener
            b.addActionListener(this);
 
            // create a panel
            JPanel p = new JPanel();
 
            p.add(b);
            p.add(l);
 
            // add panel to dialog
            d.add(p);
 
            // setsize of dialog
            d.setSize(200, 200);
 
            // set visibility of dialog
            d.setVisible(true);
        }
        else { // create a dialog Box
            d1 = new JDialog(d, "dialog Box");
 
            // create a label
            JLabel l = new JLabel("this is second dialog box");
 
            d1.add(l);
 
            // setsize of dialog
            d1.setSize(200, 200);
 
            // set location of dialog
            d1.setLocation(200, 200);
 
            // set visibility of dialog
            d1.setVisible(true);
        }
    }
}


输出:

2.程序在对话框内创建对话框

Java

// java Program to create a dialog within a dialog
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
class solve extends JFrame implements ActionListener {
 
    // frame
    static JFrame f;
 
    // dialog
    static JDialog d, d1;
 
    // main class
    public static void main(String[] args)
    {
        // create a new frame
        f = new JFrame("frame");
 
        // create a object
        solve s = new solve();
 
        // create a panel
        JPanel p = new JPanel();
 
        JButton b = new JButton("click");
 
        // add actionlistener to button
        b.addActionListener(s);
 
        // add button to panel
        p.add(b);
 
        f.add(p);
 
        // set the size of frame
        f.setSize(400, 400);
 
        f.show();
    }
    public void actionPerformed(ActionEvent e)
    {
        String s = e.getActionCommand();
        if (s.equals("click")) {
            // create a dialog Box
            d = new JDialog(f, "dialog Box");
 
            // create a label
            JLabel l = new JLabel("this is first dialog box");
 
            // create a button
            JButton b = new JButton("click me");
 
            // add Action Listener
            b.addActionListener(this);
 
            // create a panel
            JPanel p = new JPanel();
 
            p.add(b);
            p.add(l);
 
            // add panel to dialog
            d.add(p);
 
            // setsize of dialog
            d.setSize(200, 200);
 
            // set visibility of dialog
            d.setVisible(true);
        }
        else { // create a dialog Box
            d1 = new JDialog(d, "dialog Box");
 
            // create a label
            JLabel l = new JLabel("this is second dialog box");
 
            d1.add(l);
 
            // setsize of dialog
            d1.setSize(200, 200);
 
            // set location of dialog
            d1.setLocation(200, 200);
 
            // set visibility of dialog
            d1.setVisible(true);
        }
    }
}

输出 :

注意:以上程序可能无法在在线编译器中运行,请使用离线 IDE