JCombobox - Text selektierbar, aber nicht editierbar
Mario
- java
0 Daniel Thoma0 Mario
Hallo,
wie kann ich in Java eine JComboBox so gestalten, dass man den
angezeigten Text durchaus markieren (kopieren) kann, ohne dass
der Eintrag dann gleich editiert werden kann?
Mit cmb.setEnabled() und cmb.setEditable() erreicht man diesen
Zustand nicht.
Danke für Antworten
Mario
Hallo Mario,
So direkt geht das nicht. Der "richtige" Weg wäre wohl, einen eigenen ListCellRenderer zu schreiben, der das entsprechend dar stellt.
Alternativ kann man aber auch etwas pfuschen und folgendes machen:
myComboBox.setEditable(true);
((JTextComponent)myComboBox.getEditor().getEditorComponent()).setEditable(false);
Das führt dazu, dass die Combobox meint, der Text wäre editierbar und sich entsprechend verhält. Die zum Editieren verwendete Textkomponente wird aber nicht editierbar gemacht.
Das funktioniert allerdings nur, wenn auch tatsächlich eine JTextComponent verwendet wird. Das ist zwar sehr wahrscheinlich, aber das könnte, wenn man eine andere Oberfläche verwendet, auch mal anders sein.
Grüße
Daniel
Hallo Daniel,
danke für deine Antwort.
So direkt geht das nicht. Der "richtige" Weg wäre wohl, einen
eigenen ListCellRenderer zu schreiben, der das entsprechend dar
stellt.
Yep, habe es nun hierüber realisiert.
Alternativ kann man aber auch etwas pfuschen und folgendes machen:
myComboBox.setEditable(true);
(JTextComponent)myComboBox.getEditor().getEditorComponent()).setEditable(false);
Allerdings hat das den weniger schönen Nebeneffect, dass die
Komponente ausgegraut wird..
Grüße aus Berlin
Mario