JDialog เป็นคลาสย่อยของ Dialog ไม่มีปุ่มย่อ/ขยายที่มุมขวาบน สามารถสร้าง 2 ประเภท ของ JDialog ใน Java
- Modal Dialog
- Non-Modal Dialog
Modal JDialog
ใน Java เมื่อ Modal Dialog ทำงานอยู่ ทุก Input ของผู้ใช้จะไปที่ Dialog นี้ ส่วนอื่นของแอปพลิเคชันเข้าถึงไม่ได้ จนกว่าจะปิด Modal Dialog นี้
Non-Modal JDialog
เมื่อ Non-Modal Dialog ทำงานอยู่ ส่วนอื่นของแอปพลิเคชันยังเข้าถึงได้ปกติ ส่ง Input ได้ตามปกติ ในขณะที่ Non-Modal Dialog ไม่ต้องปิดก่อน
ตัวอย่างโค้ด
import javax.swing.*;
import java.awt.*;
import java.awt.Dialog.ModalityType;
public class Modal_NonModal_Dialog {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("Modal and Non-Modal Dialog");
frame.setSize(350, 300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
// Non-Modal Dialog
JDialog nonModalDialog = new JDialog(frame, "Non-Modal Dialog", ModalityType.MODELESS);
nonModalDialog.setSize(300, 250);
nonModalDialog.setLocationRelativeTo(null);
nonModalDialog.setVisible(true);
// Modal Dialog
JDialog modalDialog = new JDialog(frame, "Modal Dialog", ModalityType.APPLICATION_MODAL);
modalDialog.setSize(300, 250);
modalDialog.setLocationRelativeTo(null);
modalDialog.setVisible(true);
}
}
ผลลัพธ์
