【问题标题】:JCombobox editable enabled启用 JCombobox 可编辑
【发布时间】:2009-10-20 12:04:20
【问题描述】:

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

你能想象一下你会同时使用 setEnabled(false) 和 setEditable(true) 的情况吗?

【问题讨论】:

    标签: java jcombobox


    【解决方案1】:

    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 只允许选择下拉列表中的值,用户不能与之交互。

    如果您可能有一个JComboBoxsetEnabled(false)setEditable(true),您需要一个允许文本输入的JComboBox,但表单处于JComboBox 的值的状态不适用。一旦它确实适用,您通常会有一些操作会在JComboBox 上调用setEnabled(true)

    例如,如果您有学生住房表格之类的东西,表格上可能会出现“您需要停车位吗?”之类的问题。带有JCheckbox。汽车品牌有JComboBox,车牌号有JTextFied。您可能在 JComboBox 中预先填充了常见的汽车品牌 - 福特、雪佛兰、丰田、本田等 - 但如果有人拥有兰博基尼之类的东西(并且留在学生宿舍-是的,对...)。除非用户选择JCheckBox 表示他们需要停车位,否则不需要汽车品牌和车牌号的值。您可以向JCheckBox 添加一个侦听器,当它被选中时,它会在JComboBoxJTextField 上调用setEnabled(true),在它未被选中时调用setEnabled(false)

    【讨论】:

    【解决方案2】:

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

    如果您调用setEnabled(false),整个控件将被禁用,从而完全阻止用户与之交互。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2010-12-19
        • 1970-01-01
        • 2014-12-10
        • 1970-01-01
        • 1970-01-01
        • 2012-01-16
        • 2013-03-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多