7

我已经从 netbeans 生成了一个 GUI,其中我也放置了一个组合框。

默认情况下,组合框中的项目为 item1、item2、item3、item4。

但我想要我自己的物品。Netbeans 不允许编辑生成的代码,所以我怎么能根据我编辑comnbobox。

注意:我通过编辑该 jComboBox 的“模型”属性知道一种方法,但我不想那样做,因为我想要该 jComboBox 中的各种项目(在数组中),所以我想将该数组传入那个jComboBox如下:

jComboBox2 = new javax.swing.JComboBox();

String [] date = new String[31];
for(int i = 0; i < 31; i++) {
    date[i] = i + 1;
}

jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(date));
4

6 回答 6

7

我知道有两种方法:

  1. 简单的方法 - 在initComponents()构造函数中调用之后添加代码来构建模型并调用jComboBox2.setModel(myModel)来设置它。所以构造函数看起来像:

    public SomeClass() {
        initComponents();
        String [] date = new String[31];
        for(int i = 0; i < 31; i++) {
            date[i] = i + 1;
        }
        jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(date));
    }
    
  2. 复杂方法 - 添加一个包含所需模型的可读属性。例如:

    private ComboBoxModel getComboBoxModel()
    {
        String[] items = {"Item A", "Item B", "Item C"};
        return new DefaultComboBoxModel(items);
    }
    

    然后,在 jComboBox2 属性表中,单击按钮以编辑模型。

    在编辑器面板中,将下拉列表从 更改Combo Box Model EditorValue from existing component

    选择Property。选择 comboBoxModel 属性。点击确定

第二种方法我试过一次。再也没有真正使用过它。工作太多,收获不大。此外,它会在设计器中显示一个空的组合框,这只会使布局更加困难。

我使用第一种方法,并使用 NetBean 的模型编辑器为模型提供一些代表值。这给了我在设计器中合理的尺寸行为,代价是在initComments().

于 2009-10-28T16:36:25.903 回答
3

使用 Netbeans NEON 和其他 netbeans 版本

1.转到组合框的属性

在此处输入图像描述

2.然后去模型

在此处输入图像描述

于 2016-09-25T16:53:33.000 回答
2

您可以使用 GUI 编辑器中的“自定义代码”功能为组合框的“模型”注入代码

于 2009-10-09T14:01:42.707 回答
1
public NewJFrame() {
        initComponents();
        reformatComboBox();
  }

private void reformatComboBox() {
        JComboBoxName.removeAllItems();
        JComboBoxName.addItem("item1");
        JComboBoxName.addItem("item2");
}
于 2016-12-15T10:43:36.267 回答
0

完成 blurec 答案(我还不能评论),在 GUI 编辑器中选择组合框,转到属性,然后是模型,然后点击三个点。然后选择客户代码并添加您的代码,例如:

new DefaultComboBoxModel<>(functionThatReturnsAnStringArray())
于 2014-06-13T18:12:31.933 回答
0

为后人:

右键单击 ComboBox 并选择Customize Code。在comboBox.setModel 的左侧,选择自定义属性。在新字符串之后,按以下形式添加您的值:

值 1:Integer.toString(myInt1) 值 2:Integer.toString(myInt2)

如果你的变量当然是 int 。如果不只是放 String 变量,你就完成了。

希望能帮助到你。

于 2018-05-27T20:26:41.267 回答