A JDialog เป็นคลาสย่อยของ Dialog คลาสและมันไม่ได้ถือปุ่มย่อขนาดและขยายใหญ่สุดที่มุมบนขวาของหน้าต่าง เราสามารถสร้างกล่อง JDialog ได้สองประเภทใน Java
- กล่องโต้ตอบโมดอล
- ไดอะล็อกที่ไม่ใช่โมดอล
Modal JDialog
ใน Java เมื่อ โมดอล กล่องโต้ตอบ หน้าต่างทำงานอยู่ อินพุตของผู้ใช้ทั้งหมดจะถูกส่งตรงไปยังหน้าต่างนี้ และไม่สามารถเข้าถึงส่วนอื่นๆ ของแอปพลิเคชันได้จนกว่ากล่องโต้ตอบโมเดลนี้จะปิดลง
JDialog ที่ไม่ใช่โมดอล
ใน Java เมื่อ กล่องโต้ตอบที่ไม่ใช่โมดอล หน้าต่างทำงานอยู่ ส่วนอื่นๆ ของแอปพลิเคชันยังคงเข้าถึงได้ตามปกติและป้อนข้อมูลต่างๆ ได้ ส่วนหน้าต่างโต้ตอบแบบไม่ใช้โมดอลนี้ไม่จำเป็นต้องปิด
ตัวอย่าง
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); // modal dialog JDialog nonModalDialog = new JDialog(frame, "Non-Modal Dialog", ModalityType.MODELESS); nonModalDialog.setSize(300, 250); nonModalDialog.setLocationRelativeTo(null); nonModalDialog.setVisible(true); // non-modal dialog JDialog modalDialog = new JDialog(frame, "Modal Dialog", ModalityType.APPLICATION_MODAL); modalDialog.setSize(300, 250); modalDialog.setLocationRelativeTo(null); modalDialog.setVisible(true); } }
ผลลัพธ์