bestimmt, ob die JComboBox
Texteingabe zusätzlich zur Auswahl eines Werts über Pull-Down ermöglicht.
setEnabled(boolean)
bestimmt, ob die JComboBox
mit überhaupt interagieren kann. Wenn es nicht aktiviert ist, wird es als ausgegraut angezeigt.
A JComboBox
können eine beliebige Kombination dieser Eigenschaften haben -
setEditable(true)
+ setEnabled(true)
= JComboBox
erlaubt zusätzlich Texteingabewerte nach unten zu ziehen und Benutzer mit ihr interagieren können.
setEditable(false)
+ setEnabled(true)
= JComboBox
ermöglicht nur die Auswahl von Werten aus dem Pulldown-Menü, mit denen der Benutzer interagieren kann.
setEditable(true)
+ setEnabled(false)
= JComboBox
ermöglicht Texteingabe zusätzlich zum Herunterziehen von Werten, aber der Benutzer kann nicht mit ihm interagieren.
setEditable(false)
+ setEnabled(false)
= JComboBox
können nur Werte aus dem Pulldown-Menü ausgewählt werden, mit denen der Benutzer nicht interagieren kann.
Eine Situation, wo Sie ein JComboBox
mit setEnabled(false)
haben und setEditable(true)
wäre, wenn Sie ein JComboBox
mögen, die Texteingabe ermöglicht, aber die Form ist, in einem Zustand, in dem der Wert der JComboBox
nicht anwendbar ist. Sie würden normalerweise eine Aktion haben, die setEnabled(true)
auf der JComboBox
aufrufen würde, sobald es anwendbar wird.
Zum Beispiel, wenn Sie etwas wie ein Studentenwohnheim Formular haben, kann es eine Frage auf dem Formular wie "Brauchen Sie einen Parkplatz?" mit einem JCheckbox
. Es gibt eine JComboBox
für die Marke des Autos und eine JTextFied
für das Kfz-Kennzeichen. Sie können die JComboBox
bereits mit gängigen Automarken - Ford, Chevy, Toyota, Honda usw. - bestückt haben - aber Sie möchten auch, dass es bearbeitbar ist, falls jemand etwas wie einen Lamborghini besitzt (und in Studentenwohnungen bleibt) - ja, genau...). Der Wert für die Automarke und das Nummernschild wird nicht benötigt, es sei denn, der Benutzer wählt JCheckBox
, was bedeutet, dass er einen Parkplatz benötigt.Sie würden dem JCheckBox
einen Listener hinzufügen, der setEnabled(true)
auf dem JComboBox
und JTextField
aufrufen würde, wenn es ausgewählt wurde, und setEnabled(false)
wenn es nicht war.
Eine nicht bearbeitbare JComboBox zeigt das ausgewählte Element in dem Feld an, aber die Auswahl kann nicht geändert werden. http://docs.oracle.com/javase/8/docs/api/javax/swing/JComboBox.html#setEditable-boolean- – arley