Java 选择输入选项后关闭作业窗格
我使用的是JOptionPane,我希望它在用户选择某个选项后自动关闭。 目前,这是工作,但我仍然必须手动单击确定按钮关闭JOptionPane。勾选复选框后,我是否可以关闭它Java 选择输入选项后关闭作业窗格,java,swing,Java,Swing,我使用的是JOptionPane,我希望它在用户选择某个选项后自动关闭。 目前,这是工作,但我仍然必须手动单击确定按钮关闭JOptionPane。勾选复选框后,我是否可以关闭它 JPanel a1 = new JPanel(); a1.add(bubbleCheckBox); a1.add(quickCheckBox); a1.add(insertionCheckBox); a1.add(selectionCheckBox);
JPanel a1 = new JPanel();
a1.add(bubbleCheckBox);
a1.add(quickCheckBox);
a1.add(insertionCheckBox);
a1.add(selectionCheckBox);
// a1.add(mergeCheckBox);
arraySize=Integer.parseInt(JOptionPane.showInputDialog(null,"Enter number of elements would like to sort (Recommend max =30)"));
JOptionPane.showMessageDialog(null, a1, "Choose an algorithm to run", DEFAULT_OPTION);
}
public static void lockCheckboxes(JCheckBox a) throws IOException, InterruptedException {
if (a == insertionCheckBox) {
selectionCheckBox.setEnabled(false);
quickCheckBox.setEnabled(false);
bubbleCheckBox.setEnabled(false);
mergeCheckBox.setEnabled(false);
SortAnimator.setArraySize(arraySize);
SortAnimator animator = new SortAnimator(new InsertionSorter());
这有点复杂 首先,将
ActionListener
添加到JCheckBox
的
当触发此ActionListener
时,您需要找到包含JCheckBox
的窗口,您需要找到JOptionPane
的实例,调用setValue
并将其传递给JOptionPane。确定选项
,然后处理该对话框
类似于
JPanel a1 = new JPanel();
JCheckBox bubbleCheckBox = new JCheckBox("Bubbble");
JCheckBox quickCheckBox = new JCheckBox("Quick");
JCheckBox insertionCheckBox = new JCheckBox("Insert");
JCheckBox selectionCheckBox = new JCheckBox("Select");
ActionListener al = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JCheckBox cb = (JCheckBox) e.getSource();
JOptionPane op = (JOptionPane) SwingUtilities.getAncestorOfClass(JOptionPane.class, cb);
if (op != null) {
op.setValue(JOptionPane.OK_OPTION);
}
SwingUtilities.getWindowAncestor(cb).dispose();
}
};
bubbleCheckBox.addActionListener(al);
quickCheckBox.addActionListener(al);
insertionCheckBox.addActionListener(al);
selectionCheckBox.addActionListener(al);
a1.add(bubbleCheckBox);
a1.add(quickCheckBox);
a1.add(insertionCheckBox);
a1.add(selectionCheckBox);
// a1.add(mergeCheckBox);
if (JOptionPane.showConfirmDialog(null, a1, "Choose an algorithm to run", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE) == JOptionPane.OK_OPTION) {
System.out.println("Yeah for me");
}
就个人而言,我会使用JComboBox
,让用户选择OK或Cancel