无法从Action Listener获得消息对话框

无法从Action Listener获得消息对话框

问题描述:

我试图通过我的程序中的Action Listener输出消息对话框。我不断收到一个错误,说'不可编译的源代码 - 不兼容的类型:void不能转换为java.lang.String'。我无法弄清楚我做错了什么,特别是当我可以使用几乎相同的代码来获得“输入”对话框和“确认”对话框时,我想要消息对话框的方式。下面是我使用的代码...无法从Action Listener获得消息对话框

//add an ActionListener for Search Menu Item 
srch.addActionListener(new ActionListener(){ 
       @Override 
     public void actionPerformed(ActionEvent e) { 

       if(database_name == null){ 

        error = JOptionPane.showMessageDialog(null, "This is an Error Message", "Error", JOptionPane.ERROR_MESSAGE); 

       } 
       else if(database_name != null){ 
        jta.setText("It works"); 
       }//end if statement 

      }//end actionPerformed 
     });//end Search menuItem action listener 

正如错误所说,error变量是最有可能是StringJOptionPane.showMessageDialog不返回一个值,你可以在docs

if(database_name == null) { 
    JOptionPane.showMessageDialog(null, "This is an Error Message", "Error", JOptionPane.ERROR_MESSAGE); 
} 

将正常工作。

你可能不需要像你这样做。 Java中的actionListener不需要使用适配器类,因为它只有一个方法(即actionperformed())。尝试不使用适配器并写入srch.addActionListener(this);而不是第一行,然后分别指定actionPerformed()。