1

ボタンをクリックすると fileChooser が開き、ファイルを選択した後、その内容を操作する小さなアプリケーションがあります。では、次の疑似コードがあるとします。

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

    [...]

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

この時点で、コードは手続き型のスタイルを取っているように見えます。なぜなら、fileで発生するすべてのことが実際には actionPerformed() メソッド内で発生するからです。これでいいのかわからない。

これは大丈夫なコーディングスタイルですか?直感的には、actionPerformed() を終了して、別の場所から呼び出されたファイルで動作するメソッドを用意したいと思います。しかし、どうすればそれを行うことができますか?

actionPerformed() 内でfileの新しい値を設定するだけです。次に、ゲッターでその値を取得できました。しかし、どうしてですか?それが次に起こるべきことです。

ここのstackoverflowでpropertyChangeListenerを見たことがありますが、それが正しいかどうかもわかりません。

4

1 に答える 1

0

1 つのオプションはマルチスレッドです。それでもすべてを実行しますが、イベント スレッドでは実行しません。例えば:

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