對話框分為模態(阻塞父窗口)與非模態。JDialog 為基礎類,需指定擁有者窗口、標題、模態標誌。JOptionPane 提供靜態方法快速創建確認、輸入、訊息、選項四類標準對話框。
// 模態 JDialog 範例
JDialog dialog = new JDialog(frame, "設置", true);
dialog.setLayout(new BorderLayout());
dialog.add(new JLabel("請輸入名稱:"), BorderLayout.NORTH);
JTextField field = new JTextField();
dialog.add(field, BorderLayout.CENTER);
JButton ok = new JButton("確定");
ok.addActionListener(e -> { result = field.getText(); dialog.dispose(); });
dialog.add(ok, BorderLayout.SOUTH);
dialog.pack();
dialog.setLocationRelativeTo(frame);
dialog.setVisible(true);
// JOptionPane 快速確認
int opt = JOptionPane.showConfirmDialog(frame, "確定刪除?", "警告",
JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
if (opt == JOptionPane.YES_OPTION) delete();
輸入對話框可指定選項列表與預設值。訊息對話框支持多種圖標類型(ERROR, WARNING, QUESTION, INFORMATION, PLAIN)。善用 JOptionPane 減少樣板代碼。