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
Antwort
0
ein Feld initialisieren und benötigten Wert zuweisen:
private String pathName;
jButton3.addMouseListener(new MouseAdapter() {
....
pathName = fc.getSelectedFile().getPath();
....
});
System.out.println(pathName);
0
Das pathName
Variable ist innerhalb der mouseClicked
Funktion erstellt - so wird es zerstört werden, sobald die Funktion abgeschlossen ist.
Sie können es innerhalb der Funktion verwenden, weshalb Ihre erste printLn-Anweisung funktioniert, aber außerhalb nicht existiert. Um dies zu beheben, weisen Sie die Daten einer Variablen zu, die bereits vor dem Start der Funktion existiert, damit sie nach dem Ende der Funktion weiterhin existiert.
Verschieben Sie String pathName = null;
in einen höheren Bereich (wie in der Klasse, die diesen Code enthält) und dies funktioniert.
Verwandte Themen
- 1. Wie man Wert außerhalb der Klickfunktion erhält
- 2. Wie verschiebt man während Schleife Werte außerhalb der Schleife
- 3. Wie erhält man den Wert der Funktionsargumente?
- 4. Lisp: Wie erhält man den endgültigen Schleifenwert?
- 5. Wie erhält man den Gerätetyp?
- 6. Wie erhält man den Objektnamen?
- 7. Wie erhält man den Dezimalwert?
- 8. Break außerhalb der Schleife
- 9. Wie man den Namen eines Knopfes erhält, der außerhalb seiner individuellen Ereignisprozedur angeklickt wurde
- 10. Wie erhält man den Objektindex nach Wert?
- 11. Python verfolgen Schleife Anzahl außerhalb der Schleife?
- 12. wie man den Durchschnitt von Datenrahmenspaltenwerten erhält
- 13. @MultipartForm Wie erhält man den ursprünglichen Dateinamen?
- 14. Wie erhält man den Anfangswert einer Komponenteneigenschaft?
- 15. Wie erhält man den Spinner-Wert?
- 16. Wie erhält man den aktuellen GoogleMap-Zoomfaktor?
- 17. Wie erhält man den Kodierungstyp eines Strings?
- 18. Wie erhält man den Gruppentyp nach Abfrage?
- 19. Wie erhält man den globalen Fisher-Score?
- 20. Wie erhält man den Artikelindex in PowerApps?
- 21. Wie erhält man den zukünftigen Wert?
- 22. Eine Variable außerhalb einer for-Schleife innerhalb der Schleife ändern
- 23. SQLite - wie erhält man den Durchschnittswert?
- 24. Wie erhält man den Wert "{element:}"?
- 25. Wie erhält man den Zweignamen im Protokoll?
- 26. Wie erhält man den aktuellen TFS-Lizenztyp?
- 27. Wie erhält man den Elementwert in jQuery?
- 28. Wie erhält man den Markennamen von Button?
- 29. Wie erhält man den Wert verwandter Zeilen?
- 30. Wie erhält man den Exponentenwert einer Zahl?
1) Fügen Sie für eine Schaltfläche einen "ActionListener" statt eines Maus-Listeners hinzu. Der Tasten-Listener reagiert auf Maus- und Tastatureingabe. 2) Research 'Variable Scope', das ist ein Thema, das sollte klar sein, bevor Sie sich an einen fortgeschrittenen Bereich wie das Erstellen einer GUI. 3) OK .. Ich habe gerade bemerkt (re Punkt (1)), dass dieser Code einen Maus-Listener *** innerhalb *** der Aktion durchgeführt Methode eines Aktion Listener! Das macht keinen Sinn. Entfernen Sie alle Erwähnungen des Maus-Listeners. –
Warum fügen Sie der Schaltfläche in ihrem "ActionListener" einen 'MouseListener' hinzu? – MadProgrammer