JCombobox可编辑已启用

时间:2009-10-20 12:04:20

标签: java jcombobox

jCombobox中setEditable()和setEnabled()有什么区别?组合框可以编辑但不启用和其他方式?在哪种情况下你会使用哪种方法?

你能想象一下你可以和setEditable(true)一起做setEnabled(false)吗?

3 个答案:

答案 0 :(得分:22)

除了通过下拉菜单选择值外,

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的值不适用。一旦适用,您通常会在setEnabled(true)上调用JComboBox

例如,如果您有类似学生宿舍的表格,表格上可能会有一个问题,例如“您是否需要停车位?”使用JCheckbox。汽车品牌有JComboBox,车牌号有JTextFied。您可能预先填充了普通汽车品牌JComboBox - 福特,雪佛兰,丰田,本田等等 - 但是如果有人拥有像兰博基尼这样的东西,你可以决定是否可以编辑它(并且是留在学生宿舍 - 是的,对...)。除非用户选择JCheckBox表示他们需要停车位,否则不需要汽车品牌和车牌号码的价值。您可以向JCheckBox添加一个监听器,该监听器会在setEnabled(true)JComboBox选中JTextField时调用setEnabled(false),而{{1}}调用{{1}}。

答案 1 :(得分:7)

如果您致电setEditable(true),JComboBox的文本字段将变为可编辑状态,除了从列表中选择项目外,还允许用户使用键盘键入文本。

如果您致电setEnabled(false),整个控件将被禁用,从而阻止用户与其进行交互。

答案 2 :(得分:1)

SetEnable() - 启用组合框以便可以选择项目。

SetEditable() - 确定JComboBox字段是否可编辑。

相关问题