A JDialog เป็นคลาสย่อยของ Dialog คลาสและมันไม่ถือ ย่อเล็กสุด และ เพิ่มสูงสุด ปุ่มที่มุมบนขวาของหน้าต่าง กล่องโต้ตอบมีสองประเภทคือ โมดอล และ ไม่ใช่โมดา ล. เลย์เอาต์เริ่มต้นสำหรับกล่องโต้ตอบคือ BorderLayout
ในโปรแกรมด้านล่าง เราสามารถใช้ JDialog แบบโปร่งใสได้โดยการปรับแต่ง AlphaContainer คลาสและแทนที่ paintComponent() วิธีการ
ตัวอย่าง
<ก่อนหน้า>นำเข้า java.awt.*; นำเข้า javax.swing.*; คลาสสาธารณะ TransparentDialog { โมฆะสาธารณะหลัก (สตริง [] args) { กล่องโต้ตอบ JDialog =ใหม่ JDialog (); dialog.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); dialog.getRootPane().setOpaque(เท็จ); dialog.setUndecorated(จริง); dialog.setBackground(สีใหม่ (0, 0, 0, 0)); แผง JPanel =JPanel ใหม่ (BorderLayout ใหม่ ()); panel.setBackground(สีใหม่ (0, 0, 0, 64)); dialog.add (AlphaContainer ใหม่ (แผง)); ตัวเลื่อน JSlider =JSlider ใหม่ (); slider.setBackground(สีใหม่(255, 0, 0, 32)); panel.add (AlphaContainer ใหม่ (ตัวเลื่อน), BorderLayout.NORTH); ปุ่ม JButton =JButton ใหม่ ("ข้อความป้ายกำกับ"); button.setContentAreaFilled (เท็จ); panel.add(ปุ่ม, BorderLayout.SOUTH); dialog.setSize(400, 300); dialog.setLocationRelativeTo(null); dialog.setVisible(จริง); }}คลาส AlphaContainer ขยาย JComponent { ส่วนประกอบ JComponent ส่วนตัว; AlphaContainer สาธารณะ (องค์ประกอบ JComponent) { this.component =องค์ประกอบ; setLayout(ใหม่ BorderLayout()); setOpaque(เท็จ); component.setOpaque (เท็จ); เพิ่ม (ส่วนประกอบ); } @แทนที่โมฆะสาธารณะ paintComponent (กราฟิก g) { g.setColor (component.getBackground ()); g.fillRect(0, 0, getWidth(), getHeight()); }}ผลลัพธ์