jCombobox中setEditable()和setEnabled()之間的區別是什麼?組合框是否可編輯,但未啓用和其他方式?你會在哪種情況下使用哪種方法?JCombobox可編輯啓用
你能想象一種情況,你會setEnabled(false)與setEditable(true)一起做setEnabled(false)嗎?
jCombobox中setEditable()和setEnabled()之間的區別是什麼?組合框是否可編輯,但未啓用和其他方式?你會在哪種情況下使用哪種方法?JCombobox可編輯啓用
你能想象一種情況,你會setEnabled(false)與setEditable(true)一起做setEnabled(false)嗎?
setEditable(boolean)
確定JComboBox
是否允許通過下拉選擇一個值的文本輸入。
setEnabled(boolean)
確定JComboBox
是否能夠與之互動。如果未啓用,則顯示爲灰色。
甲JComboBox
可以具有這些特性的任何組合 -
setEditable(true)
+ setEnabled(true)
= JComboBox
允許文本輸入除了下拉值和用戶可以與之交互。setEditable(false)
+ setEnabled(true)
= JComboBox
只允許選擇下拉的值,用戶可以與其交互。setEditable(true)
+ setEnabled(false)
= JComboBox
允許文本輸入以及下拉值,但用戶無法與其交互。setEditable(false)
+ setEnabled(false)
= JComboBox
只允許從下拉列表中選擇值,並且用戶不能與其交互。一個情況下,你可能有一個JComboBox
與setEnabled(false)
和setEditable(true)
將是你想要一個JComboBox
,使文字輸入,但形式是在一個狀態,其中JComboBox
的價值是不適用的。您通常會採取一些行動,在JComboBox
確實適用後,您可以致電setEnabled(true)
。
例如,如果您有類似學生住房形式的東西,可能會出現類似「您是否需要停車位?」的問題。與JCheckbox
。汽車品牌有JComboBox
,車牌號碼有JTextFied
。您可能會預先安裝JComboBox
與普通汽車品牌 - 福特,雪佛蘭,豐田,本田等 - 但決定你也想讓它是可編輯的,以防某人擁有像蘭博基尼這樣的東西(並留在學生住房 - 是的,沒錯...)。除非用戶選擇JCheckBox
表示他們需要停車位,否則不需要汽車品牌和車牌號碼的值。您將向JCheckBox
添加一個偵聽器,該偵聽器在JComboBox
和JTextField
被選中時將調用setEnabled(true)
,當它不被選擇時將調用setEnabled(false)
。
SetEnable() - 啓用組合框,以便可以選擇項目。
SetEditable() - 確定JComboBox字段是否可編輯。
如果您致電setEditable(true)
,JComboBox的文本字段變爲可編輯狀態,除了從列表中選擇項目外,還允許用戶使用鍵盤輸入文本。
如果您致電setEnabled(false)
,整個控件將被禁用,從而阻止用戶與其進行交互。
不可編輯的JComboBox在字段中顯示所選項目,但不能修改選擇內容。 http://docs.oracle.com/javase/8/docs/api/javax/swing/JComboBox.html#setEditable-boolean- – arley 2014-06-18 23:46:00