Java 中的 JFrame 和 JDialog 有什么区别?\
awtjavaobject oriented programmingprogrammingswing
JFrame
- 添加到框架的组件称为其内容,这些由 contentPane 管理。要将组件添加到 JFrame,我们必须使用它的 contentPane。
- JFrame 包含一个带有 title、border、(可选)menubar 和 user-指定的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); } }