我是新手,我有一个疑问:
我有一个对话框,在该对话框中,有一个复选框,确定和取消按钮。 假设用户选中复选框并单击确定按钮,当用户再次打开该对话框时,复选框应为选中状态。
任何人都可以提出想法,如何实现这一点。
我知道我可以通过使用setSelected(true)和setSelected(false)方法来实现这一点。
但是如何保存复选框的状态。
答案 0 :(得分:1)
您可以将组件传递到JOptionPane
,它们将正确显示。
因此,例如,如果您创建JCheckBox
并将其传递给JOptionPane
,则在关闭对话框后,您可以检查复选框的状态并将其存储在您所在的任何位置喜欢。下次要显示对话框时,在传递复选框之前,将其状态设置为上次存储的状态。
例如(仅用于演示目的):
final JFrame f = new JFrame("Checkbox test");
f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
f.addWindowListener(new WindowAdapter() {
// I store the checkbox state here in a boolean variable:
boolean save;
@Override
public void windowClosing(WindowEvent e) {
// Now user wants to close the application, ask confirmation:
// We create a check box with the initial value of the stored state:
JCheckBox cb = new JCheckBox("Save settings before Exit", save);
int res = JOptionPane.showConfirmDialog(null,
new Object[] {"Are you sure you want to Exit?", cb}, "Exit?",
JOptionPane.OK_CANCEL_OPTION);
// Dialog closed, you can save the sate of the check box
save = cb.isSelected();
if (res == JOptionPane.OK_OPTION) {
if (save) {
// Settings can be saved here.
}
// And exit (by disposing the only frame)
f.dispose();
}
}
});
f.getContentPane().add(new JLabel("Try to close the application"));
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);