質問: fd.getFile(); return dir; break; } コメントありがとうございます。 質問が不十分のようでしたので、エラーの内容を添付します。 「actionPerformed」で、「void」以外に選択できません。「void」以外にする方法を教えてください。 よろしくお願いします。 ``` ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/e45e607a9a28aaee41f75ba2b619661e.jpeg)
回答: JDK5.0から、サブクラスでオーバーライドするメソッドの戻り値は、スーパークラスの戻り値と 同じでなくても、 その戻り値のサブクラスであれば許されるようになりました。 JDK5.0より前の場合は戻り値はvoid型でなくてはいけないのでswordoneさんの言うように実装クラス内に その結果を保持するフィールドを設けておき, そこに結果を格納する仕組みにする必要があります。 ・追記void型なのでJDK5.0以降でも変更できません。やはり変数に値を格納するしかないようです。 以下ソースコード例 int i; String dir []; String fname []; @Override public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); switch(cmd){ case "open": FileDialog fd = new FileDialog(new Frame()," " , FileDialog.LOAD); fd.setVisible(true); dir [i] = fd.getDirectory(); fname [i] = fd.getFile(); i ++; }