簡體   English   中英

Netbeans - 在jComboBox中輸入項目

[英]Netbeans - Entering items in a jComboBox

我已經從netbeans生成了一個GUI,我也在其中放置了一個組合框。

默認情況下,組合框中的項目為item1,item2,item3,item4。

但我想要自己的物品。 Netbeans不允許編輯生成的代碼,所以如何根據我編輯comnbobox。

注意:我通過編輯該jComboBox的“model”屬性知道一種方法,但我不想這樣做,因為我想在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));

我知道有兩種方法:

  1. 簡單方法 - 在initComponents()調用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 Editor的下拉列表更改為Value from existing component

    選擇Property 選擇comboBoxModel屬性。 單擊確定

我曾嘗試過第二種方式。 再也沒用過了。 太多的工作,沒有真正的好處。 此外,它在設計器中顯示一個空的組合框,這使得布局更難。

我使用第一種方法,再使用NetBean的模型編輯器為模型提供一些有代表性的值。 這給了我設計師合理的大小行為,代價是initComments()中一條不必要的行。

使用Netbeans NEON和其他netbeans版本

1.轉到組合框的屬性

在此輸入圖像描述

然后去模特兒

在此輸入圖像描述

您可以使用GUI編輯器中的“自定義代碼”功能為組合框的“模型”注入代碼

完成blurec答案(我還不能評論),在GUI編輯器中選擇comboxbox,go屬性,然后模型,然后點擊三個點。 然后選擇Custome Code並添加您的代碼,例如:

new DefaultComboBoxModel<>(functionThatReturnsAnStringArray())
public NewJFrame() {
        initComponents();
        reformatComboBox();
  }

private void reformatComboBox() {
        JComboBoxName.removeAllItems();
        JComboBoxName.addItem("item1");
        JComboBoxName.addItem("item2");
}

后人:

右鍵單擊ComboBox並選擇Customize Code 在comboBox.setModel中,在左側選擇自定義屬性 在新String之后,以下面的形式添加您的值:

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

如果你的變量當然是int。 如果不是只是放入String變量就完成了。

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM