1

我有一个小应用程序,它在单击按钮时打开一个 fileChooser,并在选择一个文件后使用它的内容。所以,假设我们有这个伪代码:

    File file = new File();
    JFileChooser fileChooser = new JFileChooser();

    [...]

    actionPerformed() {
      file = fileChooser.getSelectedFile();
      doStuffWithFile(file);
    }

在这一点上,代码似乎采用了程序化风格,因为文件发生的所有事情现在实际上都发生在 actionPerformed() 方法中。我不确定这是否可以。

这是好的编码风格吗?直观地说,我想结束 actionPerformed() 并拥有处理从其他地方调用的文件的方法。但我该怎么做呢?

一个想法是在 actionPerformed()中设置文件的新值。然后我可以用吸气剂得到那个值。但怎么会呢?这应该是接下来发生的事情。

我在 stackoverflow 上看到了一个 propertyChangeListener,但我不确定这是否也是正确的。

4

1 回答 1

0

一种选择是多线程。它仍然会做所有事情,但不是在事件线程中。例如:

actionPerformed(){
    new Thread(){
        public void run(){
            file = fileChooser.getSelectedFile();
            doStuffWithFile(file);
        }
     }.start()
}
于 2012-11-21T01:12:39.973 回答