我的项目中有3个按钮,我希望他们执行一些代码。我知道这些方法返回整数(每个按钮都不同),我可以使用"如果"指示检查按下了哪个按钮并执行特定操作。它工作,但首先它关闭对话框,这不是我想要的。我只想通过第三个按钮或[x]关闭它。
public void popup(){
JButton[] buttons = {new JButton("Save"),new JButton("Re-draw"),new JButton("Close")};
if(results.size()==0){
JOptionPane.showMessageDialog(frame, "Please fill all fields", "Error", JOptionPane.PLAIN_MESSAGE);
}
else{
JList<String> resultsList = new JList(results.toArray(new String[results.size()]));
int result = JOptionPane.showOptionDialog(frame, resultsList, "Results",JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE, null, buttons, buttons[0]);
}
});
System.out.println(result);
if (result == 0){
/*saving results*/
}
else if(result == 1){
draw();
}
正如我所说,它有效,但按下任何按钮都会导致关闭对话框。我不知道它可能禁用自动对话关闭按钮&#34; Save&#34;和&#34; Redraw&#34;?
答案 0 :(得分:1)
阅读Stopping Automatic Dialog Closing上的Swing教程中的部分。
另一种选择当然是如果只是创建自己的自定义JDialog来实现你想要的功能。