Я не знаю, как сделать выпадающий в Java - PullRequest
0 голосов
/ 14 января 2010

(используя netbeans и java)

I have the following
1 text field named input 1 (named x5)
1 text field named input 2 (named plus10)
1 text field named input 3 (named plus5perc)

1 answer field (an uneditable text field)

1 button

Когда число вводится в любой вход, вычисление выполняется при нажатии кнопки вычисления, например, если я введу 2 в поле ввода 1 и нажму кнопку = input1 * 5, и ответ отобразится в поле ответа когда 2 вводится на вход 2 = (вход 2 + 10) * 5 когда 2 вводится на вход 3 = на вход 3 + 5%

вместо 3 полей ввода, я хотел бы 1 выпадающий список и один вход

так что вы выбираете из выпадающего списка, который вы хотите, и только 1 поле ввода.

Я не знаю, как делать выпадающие списки и т.д., и любая помощь будет признательна


редактировать

Кто-нибудь знает, как при загрузке скрыть 3 входа, а затем отобразить соответствующий вход, когда он выбран в поле со списком?

Ответы [ 3 ]

3 голосов
/ 14 января 2010

Раскрывающийся список называется комбинированным окном в большинстве пользовательских интерфейсов. Объект свинга Java - это JComboBox

Вот документация: http://java.sun.com/javase/6/docs/api/javax/swing/JComboBox.html

И учебник: http://java.sun.com/docs/books/tutorial/uiswing/components/combobox.html

1 голос
/ 16 января 2010

Я попробовал (надеюсь, это то, что вы хотите).

Со всеми этими ссылками и учебными пособиями вы уже смогли это сделать (IMO).

Вот как это выглядит:

Снимок экрана http://img97.imageshack.us/img97/9557/socombobox.png

Он не делает правильную обработку исключений, не округляет результаты и не действительно объектно-ориентирован (просто использует жестко закодированные индексы, будьте осторожны при изменении ).


Добавьте компоненты (в моем случае txtInput, cmbChoose, btnDo и txtResult.

Отредактируйте model свойство вашего JComboBox, используя Combo Box Model Editor и установите его на

x5
plus10
plus5perc

Будет сгенерирован следующий источник:

cmbChoose.setModel(new javax.swing.DefaultComboBoxModel(
    new String[] { "x5", "plus10", "plus5perc" }));

Добавьте в ваш метод JButton s ActionPerformed следующее.

try {
    float input = Float.valueOf(txtInput.getText());
    float output = 0;

    switch (cmbChoose.getSelectedIndex()) {
        case 0:
            output = input * 5; break;
        case 1:
            output = input + 10; break;
        case 2:
            output = input * 1.05f;
    }

    txtResult.setText(String.valueOf(output));
} catch (Exception e) {
    txtResult.setText("[Error]");
}
0 голосов
/ 14 января 2010

Извините за путаницу.

пожалуйста, игнорируйте другой пост.


ответ пользователя: italy

два подхода:

(1) Использовать setVisible - при создании полей вызывайте setVisible (false) для каждого. Когда выбор сделан в поле со списком, вызовите setVisible (true) для соответствующего поля ввода и setVisible (false) для остальных.

(2) Использовать одно поле ввода - когда в поле со списком делается выбор, измените его имя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...