Я пытаюсь работать, чтобы отобразить несколько jtextfield в соответствии с одним из заданных значений в combobox.JCombobox и JTextfield
Итак, у меня будет выпадающее меню, давайте скажем от 1 до 4. Если пользователь выбирает номер 3, будут отображаться 3 текстовых поля. Я создал jcombobox с набором чисел. Но я не уверен, как это реализовать. Если я не ошибаюсь, мне нужно использовать
ItemEvent.SELECTED
Я думаю, что мне нужно создать ссылку на объект JTextField, который будет доступен для объекта itemListener в JComboBox в.
Любая помощь была бы принята с благодарностью.
Я добавил это в моем классе:
// aOption is the combobox I declared
aOptionComboBox.setModel(new DefaultComboBoxModel(new String[]{"1","2","3"}));
public void itemStateChanged(ItemEvent event) {
String num = (String)aOptionComboBox.getSelectedItem();
int num1 = Integer.parseInt(num);
JTextField[] textfields = new JTextField[num1];
for (int i = 0; i < num1; i++)
{
textfields[i] = new JTextField("Field");
getContentPane().add(textfields[i]);
textfields[i].setBounds(200, 90, 100, 25);
}
}
я на правильном пути?
* «Я на правильном пути?» * Наверное, нет, если код использует 'setBounds'. *** Используйте макеты ***. Кроме того, для лучшей помощи, скорее, опубликуйте [SSCCE] (http://sscce.org/). –
что случилось, когда вы его попробовали :-) Подсказка: вы, вероятно, захотите удалить любые поля, которые были добавлены ранее. Также: если это домашняя работа, пожалуйста, пометьте как таковой – kleopatra
«Я на правильном пути?», Ответ на этот вопрос: Определенно, вы ошибаетесь. Поскольку внутри вашего цикла for, как вам очень рекомендуется @AndrewThompson, не использовать ** setBounds **. Но предположим, что если вы все еще используете его, не все созданные вами JTextFields расположены один над другим, в том же месте. Итак, как вы узнаете, сколько их на вашем «JFrame»? –