无法从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
变量是最有可能是String
而JOptionPane.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()。