2015-12-28 60 views
0

如何将ActionListener添加到JOptionPane中的JButton。所以当我按下按钮时,它会执行某个代码。 我试图用这个代码,但它不工作:将actionlistener添加到joptionPane中的按钮(java)

JButton button1= new JButton("Button 1"); 
int value = JOptionPane.showOptionDialog(null, "Here's a test message", "Test", JOptionPane.YES_OPTION , JOptionPane.QUESTION_MESSAGE, null,new Object[]{button1}, button1); 
button1.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     //code to excute 
     System.out.println("code excuted"); 
    } 
}); 
+0

你的意思是[this](http://stackoverflow.com/questions/12828389/actionlistener-on-joptionpane/12829264#12829264)?问题是,为什么? 'JOptionPane'将返回被激活的对象的'int'索引 – MadProgrammer

+1

或类似[this](http://stackoverflow.com/questions/14591089/joptionpane-passing-custom-buttons/14591165#14591165)? – MadProgrammer

回答

3

我如何添加的ActionListener在JOptionPane中的按钮。

那么,您需要将ActionListener添加到按钮之前显示选项窗格。

但是,您并不是真的想要提供自己的自定义按钮,因为即使添加了ActionListener,您仍然需要自行管理对话框的关闭。

相反,更好的解决方案是只提供自定义字符串并让JOptionPane管理按钮并关闭对话框。

然后你测试返回值,你基于该值处理:

if (value == 0) // the string text you specify for the button 
    // do something 

阅读How to Make Dialogs Swing的教程使用选项窗格的更多信息。

+1

或者,如果您提供自定义选项,则选项数组中的选项的索引;) – MadProgrammer