我有这个测试代码,我希望方法在按下按钮时返回一个值。最好的方法是什么?
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
}
});
答案 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);
}