无法从动作侦听器获取“消息”对话框

时间:2014-02-18 08:14:13

标签: java swing joptionpane

我正在尝试输出一个消息对话框,因为我的程序中有一个Action Listener。我一直收到一条错误,上面写着“无法编译的源代码 - 不兼容的类型:void无法转换为java.lang.String”。我无法弄清楚我做错了什么,尤其是当我可以使用几乎相同的代码获得输入对话框和确认对话框时,我想要消息对话框。这是我用过的代码......

    //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 

2 个答案:

答案 0 :(得分:3)

正如错误所述,error变量很可能是String,而JOptionPane.showMessageDialog不会返回值,正如您在docs <中看到的那样/ p>

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

会正常工作。

答案 1 :(得分:0)

您可能不需要像执行此操作那样执行此操作。 Java中的actionListener不需要使用适配器类,因为它只有一个方法(即actionperformed())。尝试不使用适配器并编写srch.addActionListener(this);而不是第一行,然后单独指定actionPerformed()。