jCombobox 中的 setEditable() 和 setEnabled() 有什么区别?组合框可以编辑但不启用或其他方式吗?在什么情况下你会使用什么方法?
你能想象一个你将 setEnabled(false) 和 setEditable(true) 一起做的情况吗?
setEditable(boolean)
确定JComboBox
除了通过下拉选择值之外是否允许文本输入。
setEnabled(boolean)
确定是否JComboBox
可以与之交互。如果未启用,则显示为灰色。
AJComboBox
可以具有这些属性的任意组合 -
setEditable(true)
+ setEnabled(true)
=JComboBox
除了下拉值之外还允许文本输入,并且用户可以与之交互。setEditable(false)
+ setEnabled(true)
=JComboBox
只允许选择下拉列表中的值,并且用户可以与之交互。setEditable(true)
+ setEnabled(false)
=JComboBox
除了下拉值外,还允许文本输入,但用户无法与之交互。setEditable(false)
+ setEnabled(false)
=JComboBox
仅允许选择下拉列表中的值,并且用户无法与之交互。一种情况,您可能有一个JComboBox
withsetEnabled(false)
并且setEditable(true)
您想要一个JComboBox
允许文本输入的地方,但表单处于JComboBox
不适用的值的状态。您通常会采取一些行动,setEnabled(true)
一旦JComboBox
它确实适用。
例如,如果您有学生住房表格之类的东西,表格上可能会出现“您需要停车位吗?”之类的问题。带一个JCheckbox
。有一个JComboBox
汽车品牌和一个JTextFied
车牌号。您可能已经JComboBox
预先填充了常见的汽车品牌 - 福特、雪佛兰、丰田、本田等 - 但决定您还希望允许它可编辑,以防有人拥有像兰博基尼这样的东西(并且住在学生宿舍 -是的,对...)。JCheckBox
除非用户选择表示他们需要停车位,否则不需要汽车品牌和车牌号的值。您将添加一个侦听器,该侦听器JCheckBox
将在它被选中时调用setEnabled(true)
,JComboBox
而当它未被JTextField
选中时。setEnabled(false)
如果您调用setEditable(true)
,JComboBox 的文本字段将变为可编辑状态,允许用户使用键盘输入文本以及从列表中选择一个项目。
如果您调用setEnabled(false)
,则整个控件将被禁用,从而完全阻止用户与之交互。
SetEnable() - 启用组合框以便可以选择项目。
SetEditable() - 确定 JComboBox 字段是否可编辑。