Java从嵌套类返回

时间:2016-03-28 17:56:27

标签: java class methods actionlistener event-listener

我有这个测试代码,我希望方法在按下按钮时返回一个值。最好的方法是什么?

public String test(){
    JFrame frame=new JFrame();
    frame.setSize(800,600);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);

    JButton button=new JButton("Click Me!");
    frame.add(button);
}

我尝试添加ActionListener,但我认为无法从父方法返回值。

button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        //A return here would not work
    }
});

1 个答案:

答案 0 :(得分:2)

局部变量必须是final,但没有什么可以阻止它成为Collection,然后可以对其进行修改。

请查看以下代码。

public String test(){
    // code
    final List<String> list = new ArrayList<>();
    button.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            list.add("toBeReturned");
        }
    });
    frame.add(button);
    return list.get(0);
}