Computer >> Máy Tính >  >> Lập trình >> Java

Sự khác biệt giữa JFrame và JDialog trong Java là gì?

JFrame

  • Các thành phần được thêm vào khung được gọi là nội dung của nó, những thành phần này được quản lý bởi contentPane . Để thêm một thành phần vào JFrame , chúng tôi phải sử dụng contentPane của nó thay vào đó.
  • A JFrame chứa một cửa sổ có tiêu đề , biên giới , (tùy chọn) menu thanh người dùng - chỉ định thành phần .
  • A JFrame có thể được di chuyển , đã đổi kích thước , được biểu tượng hóa và nó không phải là một lớp con của JComponent .
  • Theo mặc định, JFrame được hiển thị ở góc trên bên trái r của màn hình. Để hiển thị khung ở một vị trí được chỉ định, chúng tôi có thể sử dụng setLocation (x, y) trong lớp JFrame.

Ví dụ

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);
   }
}

Đầu ra

Sự khác biệt giữa JFrame và JDialog trong Java là gì?

JDialog

  • JDialog rất giống với JFrame ngoại trừ việc JDialog có thể được đặt theo phương thức . Phương thức nghĩa là không thể sử dụng hoặc kích hoạt cửa sổ nào khác trong khi JDialog tương ứng đang được hiển thị.
  • Phương thức hộp thoại chặn đầu vào cho các cửa sổ cấp cao nhất khác và Modeless hộp thoại cho phép nhập vào các cửa sổ khác.
  • Không giống như JFrame , JDialog không giữ các nút thu nhỏ và phóng to ở góc trên cùng bên phải của cửa sổ.

Ví dụ

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);
   }
}

Đầu ra

Sự khác biệt giữa JFrame và JDialog trong Java là gì?