NetBeans - ввод элементов в jComboBox - PullRequest
7 голосов
/ 09 октября 2009

Я сгенерировал графический интерфейс из сетевых компонентов, в которые также поместил комбинированный список.

По умолчанию элементы в выпадающем списке: item1, item2, item3, item4.

Но я хочу свои вещи. Netbeans не позволяет редактировать сгенерированный код, так как я могу редактировать comnbobox в соответствии со мной.

Примечание: я знаю один метод, редактируя свойство "model" этого 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));

Ответы [ 6 ]

7 голосов
/ 28 октября 2009

Мне известны 2 подхода:

  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 Editor на Value from existing component.

    Выберите Property. Выберите свойство comboBoxModel. Нажмите OK

Я попробовал второй способ один раз. Никогда не использовал это снова. Слишком много работы, нет особой выгоды. Кроме того, в конструкторе отображается пустое поле со списком, что только усложняет макет.

Я использую первый подход, плюс использую редактор моделей NetBean, чтобы предоставить некоторые репрезентативные значения для модели. Это дает мне разумное поведение размера в конструкторе за счет одной ненужной строки в initComments().

3 голосов
/ 25 сентября 2016

Использование Netbeans NEON и других версий NetBeans

1. Перейти к свойствам выпадающего списка

enter image description here

2. Затем перейдите к модели

enter image description here

2 голосов
/ 09 октября 2009

Вы можете ввести свой код, используя функцию «Пользовательский код» в редакторе GUI для «модели» комбинированного списка

0 голосов
/ 27 мая 2018

Для потомков:

Щелкните правой кнопкой мыши ComboBox и выберите Настройка кода . Здесь, в comboBox.setModel, слева выберите пользовательское свойство . После новой строки добавьте свои значения в следующую форму:

Значение 1: Integer.toString (myInt1) Значение 2: Integer.toString (myInt2)

Если ваши переменные, конечно, int. Если нет, просто введите переменную String, и все готово.

Надеюсь, это поможет.

0 голосов
/ 15 декабря 2016
public NewJFrame() {
        initComponents();
        reformatComboBox();
  }

private void reformatComboBox() {
        JComboBoxName.removeAllItems();
        JComboBoxName.addItem("item1");
        JComboBoxName.addItem("item2");
}
0 голосов
/ 13 июня 2014

Завершение ответа blurec (я пока не могу комментировать), в графическом редакторе выберите comboxbox, перейдите в свойства, затем модель, затем нажмите три точки. Затем выберите Код Кастоме и добавьте свой код, например:

new DefaultComboBoxModel<>(functionThatReturnsAnStringArray())
...