1

我正在尝试创建一个包含“生成”按钮的方法,该按钮允许您在单击按钮时向调用方法类返回一个值(字符串或其他)。我试着这样做:

//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();

我在生成器类中遇到了这个错误:

返回类型与 ActionListener.actionPerformed(ActionEvent) 不兼容

我怎样才能实现我想做的事情?我需要获得当我单击内部按钮时调用的类的值。

4

2 回答 2

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;
    }
 }
于 2013-08-20T17:18:06.807 回答
0

你不能actionPerformed()返回一个字符串......而且我看不出你需要这样做的理由。我认为您可以formatactionPerformed().

于 2013-08-20T16:47:15.810 回答