我正在尝试创建一个包含按钮“generate”的方法,允许您在每次单击按钮时将值(字符串或其他)返回给方法的调用类。 我试着这样做:
//start methode in "Generator" Class
public String start()
{
String format = new String("");
this.generateBtn.addActionListener(new ActionListener()
{
public String actionPerformed(ActionEvent arg0)
{
//after doing operations on "format" string
return format;
}
});
我以这种方式从另一个类调用start方法:
Generator genDialog =new Generator();
String format = genDialog.start();
我在Generator类中遇到了这个错误:
返回类型与ActionListener.actionPerformed(ActionEvent)不兼容
我如何实现我想做的事情? 我需要获得我在单击内部按钮时调用的类的值。
答案 0 :(得分:2)
看起来你的Generator类是一个对话框。如果是模态对话框,则setVisible(true)方法将阻塞,直到对话框被隐藏。那么你的generateBtn动作监听器应该做的是将生成的字符串存储在成员变量中,然后调用setVisible(false)。然后,start方法设置调用setVisible(true)并返回值。
它看起来像这样。
public class Generator extends JDialog {
private String format;
private JButton generateBtn;
public Generator () {
setModal(true);
generateBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// create format string
setVisible(false);
}
});
}
public String start() {
setVisible(true);
return format;
}
}
答案 1 :(得分:0)
你不能让actionPerformed()
返回一个字符串...而且我没有看到你需要的原因。我认为您可以在format
内actionPerformed()
执行所需的任何操作。