Swing selektierte Komponente ermitteln

feldmah

Mitglied
Guten Tag,

gibt es eine Möglichkeit die selektierte Komponente (z.B. JTextField) eines JFrame zu ermitteln?

Ich wollte für alle Textfelder eines JFrame eine Kopierfunktion(Pop-Up-Menu) machen und den Inhalt der selektierten Komponente in die Zwischenablage speichern.

Hat jemand eine Idee?

Vielen Dank.
 
Lauf alle Komponenten durch, Caste sie entsprechend ihrer Definition und dann überprüfe die Komponenten daraufhin, ob sie z.B. im Fokus stehen.
 
ich habe die Methode isFocusOwner() für das JTextField aufgerufen. Sie gibt den Wert false zurück.

Ich habe ja das Pop-Up-Menu aufgerufen. Ist dadurch der Focus verloren gegangen?
 
Aso, na das stimmt, dann verlierst du Fokus, sorry habs anders verstanden. Weitere Möglichkeit wäre, dir Ableitungen von den Komponenten zu schreiben, welche ein Attribut isRecentlyChanged (z.B) beinhalten und du dies bei dem Event focus gained auf true setzt und bei focus lost auf false. Danach fragst du alle Komponenten nach dem Attribut ab.
 
hier noch mal der Code:
private void jmiKopierenActionPerformed(ActionEvent evt) {
System.out.println("jmiKopieren.actionPerformed, event=" + evt);
jmiKopieren.isFocusOwner();
jPopupMenu.isFocusOwner();
if (jtfBzeichnung.isFocusOwner()) {
StringSelection ss = new StringSelection(jtfBzeichnung.getText());
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);

}
}
 

Neue Themen


Zurück
Oben