Java 中的 JFrame 和 JDialog 有什么区别?\

awtjavaobject oriented programmingprogrammingswing

JFrame

  • 添加到框架的组件称为其内容,这些由 contentPane 管理。要将组件添加到 JFrame,我们必须使用它的 contentPane
  • JFrame 包含一个带有 titleborder、(可选)menubaruser-指定的components 的窗口。
  • JFrame 可以移动调整大小图标化,并且它不是 JComponent 的子类。
  • 默认情况下,JFrame 显示在屏幕的左上角。要在指定位置显示框架,我们可以使用 JFrame 类中的 setLocation(x, y)方法。

示例

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JFrameDemo {
   public static void main(String s[]) {
      JFrame frame = new JFrame("JFrame Demo");
      frame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
         }
      });
      JLabel lbl = new JLabel("JFrame Demo");
      lbl.setPreferredSize(new Dimension(175, 100));
      frame.getContentPane().add(lbl, BorderLayout.CENTER);
      frame.setSize(375, 275);
      frame.setVisible(true);
   }
}

输出

JDialog

  • JDialog JFrame 非常相似,只是 JDialog 可以模态设置。 模态表示在显示相应的 JDialog 时,不能使用或激活任何其他窗口。
  • 模态对话框阻止对其他顶级窗口的输入,而非模态对话框允许对其他窗口的输入。
  • JFrame 不同,JDialog 在窗口的右上角不包含最小化和最大化按钮。

示例

import javax.swing.JDialog;
import javax.swing.JLabel;
public class JDialogDemo extends JDialog {
   public static void main(String[] args) {
      try {
         JDialogDemo dialog = new JDialogDemo();
         dialog.setVisible(true);
      } catch (Exception e) {
         e.printStackTrace();
      }
   }  
   public JDialogDemo() {
      setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
      setTitle("Welcome to Tutorials Point");
      setBounds(100, 100, 359, 174);
      getContentPane().setLayout(null);
      JLabel label = new JLabel("Welcome to Tutorials Point");
      label.setBounds(86, 37, 175, 29);
      getContentPane().add(label);
   }
}

输出


相关文章