private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
jButton3.addMouseListener(new MouseAdapter() {
//String pathName;
@Override
public void mouseClicked(MouseEvent arg0) {
String pathName = null;
FileFilter filter = new FileNameExtensionFilter("JPEG file", "jpg", "jpeg");
fc.setFileFilter(filter);
int response = fc.showOpenDialog(null);
try {
if (response == JFileChooser.APPROVE_OPTION) {
pathName = fc.getSelectedFile().getPath();
System.out.println(pathName); // this works
//JOptionPane.showMessageDialog(null, pathName);
ImageIcon icon = new ImageIcon(pathName);
jLabel4.setIcon(icon);
} else {
// JOptionPane.showMessageDialog(null, "Feel Free to Look Later");
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
System.out.println(pathName); // THIS DOESNOT
}
-2
A
答えて
0
は、フィールドを初期化し、それに必要な値を割り当てる:
private String pathName;
jButton3.addMouseListener(new MouseAdapter() {
....
pathName = fc.getSelectedFile().getPath();
....
});
System.out.println(pathName);
0
pathName
変数がmouseClicked
関数の内部で作成されます - ので、関数が完了したら、それは破棄されます。
最初のprintLnステートメントが機能する理由は関数内で使用できますが、外部には存在しません。これを修正するには、関数の開始前にすでに存在する変数にデータを割り当て、関数が終了した後も変数が存在し続けるようにします。
String pathName = null;
を高いスコープ(このコードを含むクラスのように)に移動すると、これが機能します。
関連する問題
- 1. Rails 5.0でファイルのパス名を取得する方法は?
- 2. ループ外でループ値を取得する方法
- 3. ファイル名の前にパスを取得する方法
- 4. VBAのファイル名/パスを取得する方法
- 5. パスを削除してファイル名を取得する方法
- 6. Nodejsのループの外部変数を取得する方法
- 7. 行列を使ってループ外にループ値を取得する方法は?
- 8. SVGパスの取得方法
- 9. カーネル内のキャラクタデバイスのノード名またはパスを取得する方法
- 10. linuxのpidからプロセスのパスまたは名前を取得する方法
- 11. 相対パスを取得する方法
- 12. MediaStore.Images.Mediaでパスを取得する方法
- 13. モジュール名からパスを取得する
- 14. Jersey 1.9 - パスのパラメータ名と対応する値を取得する方法
- 15. Fullcalendar - ループ外のIDを取得する
- 16. パスを知らずにファイルの名前を取得する方法
- 17. 現在のjavascriptファイル名の絶対パスを取得する方法
- 18. JAX-RSのパラメータとしてパス名を取得する方法@Path
- 19. パス名の一部を取得してインデックスに追加する方法
- 20. ssjsを使ってクッキーのパスを取得する方法は?
- 21. パス(Neo4j)のノードプロパティの合計値を取得する方法は?
- 22. Androidでファイルの実際のパスを取得する方法は?
- 23. Windowsのフォントフォルダへのパスを取得する方法は?
- 24. Racket:実行中のファイルのパスを取得する方法は?
- 25. メインバンドルのサブフォルダへのパスを取得する方法は?
- 26. ポータブル電子アプリの元のパスを取得する方法は?
- 27. 既存のファイルへのパスを取得する方法は?
- 28. jsファイルの "node_modules"フォルダへのパスを取得する方法は?
- 29. '他の'プロジェクトファイルの相対パスで絶対パスを取得する方法は?
- 30. Wordpressでループ外の既存のタグをすべて取得する方法
1)ボタンの場合は、マウスリスナーではなく「ActionListener」を追加します。ボタンリスナはボットマウスとキーボード入力に応答します。 2)GUIのような高度な領域に近づく前に明確にすべきトピックである「可変スコープ」を研究する。 3)OK ..私はちょうどこのコードがマウスリスナー***を***に追加していることに気付きました(re point(1))***アクションリスナーのメソッドが実行されました!それは意味をなさない。マウスリスナーのすべての言及を削除します。 –
なぜ 'MouseListener'をその' ActionListener'の中のボタンに追加していますか? – MadProgrammer