我有一个小应用程序在单击按钮时打开fileChooser,在选择文件后,使用它的内容。所以,让我们说我们有这个伪代码:
File file = new File();
JFileChooser fileChooser = new JFileChooser();
[...]
actionPerformed() {
file = fileChooser.getSelectedFile();
doStuffWithFile(file);
}
此时,似乎代码采用了程序样式,因为 file 所发生的一切现在实际上仍然在actionPerformed() - 方法内部发生。我不确定这是否可以。
这是好的编码风格吗?直觉上,我想结束actionPerformed()并让方法处理从其他地方调用的文件。但是我该怎么做呢?
一个想法是在actionPerformed()中设置 file 的新值。然后我可以用吸气剂获得该值。但是如何呢?它应该是接下来发生的事情。
我在stackoverflow看到过propertyChangeListener,但我不确定这是否也是正确的。
答案 0 :(得分:0)
一种选择是多线程。它仍然会做所有事情,但不会在事件线程中。例如:
actionPerformed(){
new Thread(){
public void run(){
file = fileChooser.getSelectedFile();
doStuffWithFile(file);
}
}.start()
}