将actionlistener添加到joptionPane(java)中的按钮

将actionlistener添加到joptionPane(java)中的按钮,java,swing,joptionpane,Java,Swing,Joptionpane,如何将ActionListener添加到JOptionPane中的JButton。所以当我按下按钮时,它会执行一个特定的代码。 我尝试使用此代码,但它不起作用: JButton button1= new JButton("Button 1"); int value = JOptionPane.showOptionDialog(null, "Here's a test message", "Test", JOptionPane.YES_OPTION , JOptionPane.QUESTION_M

如何将
ActionListener
添加到
JOptionPane
中的
JButton
。所以当我按下按钮时,它会执行一个特定的代码。 我尝试使用此代码,但它不起作用:

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");
    }
}); 
如何将actionlistener添加到joptionPane中的按钮

在显示选项窗格之前,您需要将ActionListener添加到按钮中

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

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

然后测试返回值,并根据该值进行处理:

if (value == 0) // the string text you specify for the button
    // do something
有关使用选项窗格的详细信息,请阅读上的Swing教程

如何将actionlistener添加到joptionPane中的按钮

在显示选项窗格之前,您需要将ActionListener添加到按钮中

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

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

然后测试返回值,并根据该值进行处理:

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

有关使用选项窗格的详细信息,请阅读上的Swing教程。

您的意思是?问题是,为什么
JOptionPane
将返回被激活的对象的
int
索引或类似的内容?你是说类似的内容?问题是,为什么
JOptionPane
将返回被激活对象的
int
索引或类似的内容?或者,如果提供自定义选项,则返回选项数组中选项的索引;)或者,如果要提供自定义选项,则为选项数组中选项的索引;)