Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JCombobox editable enabled

Tags:

java

jcombobox

What is the difference between the setEditable() and the setEnabled() in a jCombobox? Can a combobox be editable but not enabled and other way around? In which situation would you use which method?

Can you imagine a situation in which you would do setEnabled(false) together with setEditable(true)?

like image 834
Fortega Avatar asked Oct 20 '09 12:10

Fortega


People also ask

Which of these is used to determine whether the JComboBox is editable?

SetEditable() - Determines whether the JComboBox field is editable.

How do you make an editable combo box in Java?

By default, the user not allowed to edit the data in the text field portion of the JComboBox. If we want to allow the user to edit the text field, call setEditable(true) method. A JComboBox can generate an ActionListener, ChangeListener or ItemListener when the user actions on a combo box.

How does JComboBox work?

JComboBox is a part of Java Swing package. JComboBox inherits JComponent class . JComboBox shows a popup menu that shows a list and the user can select a option from that specified list . JComboBox can be editable or read- only depending on the choice of the programmer .

What is the difference between JComboBox and JList box give one method of each of them?

A JComboBox is a component that displays a drop-down list and gives users options that we can select one and only one item at a time whereas a JList shows multiple items (rows) to the user and also gives an option to let the user select multiple items.


1 Answers

setEditable(boolean) determines if the JComboBox allows text entry in addition to selecting a value via pull-down.

setEnabled(boolean) determines if the JComboBox is able to be interacted with at all. If it is not enabled, it is displayed as grayed out.

A JComboBox can have any mix of these properties -

  • setEditable(true) + setEnabled(true) = JComboBox allows text input in addition to pull down values and user can interact with it.
  • setEditable(false) + setEnabled(true) = JComboBox only allows values from the pull down to be selected and user can interact with it.
  • setEditable(true) + setEnabled(false) = JComboBox allows text input in addition to pull down values but user cannot interact with it.
  • setEditable(false) + setEnabled(false) = JComboBox only allows values from the pull down to be selected and user cannot interact with it.

A situation where you may have a JComboBox with setEnabled(false) and setEditable(true) would be where you want a JComboBox that allows text input, but the form is in a state where the value of the JComboBox isn't applicable. You would usually have some action that would call setEnabled(true) on the JComboBox once it does become applicable.

For example, if you have something like a student housing form, there may be a question on the form like 'Do you need a parking space?' with a JCheckbox. There's a JComboBox for the brand of car and a JTextFied for the license plate number. You may have the JComboBox pre-populated with common car brands - Ford, Chevy, Toyota, Honda, etc. - but decide you also want to allow it to be editable in case someone owns something like a Lamborghini (and is staying in student housing - yeah, right...). The value for car brand and license plate number aren't needed unless the user selects the JCheckBox signifying that they need a parking space. You would add a listener to the JCheckBox that would call setEnabled(true) on the JComboBox and JTextField when it was selected, and setEnabled(false) when it wasn't.

like image 157
Nate Avatar answered Sep 25 '22 00:09

Nate