переключатель использовать какой сеттер?

Мои значения получают его из базы данных (mysql).

Если в текстовом поле, то будет так: txtMID.setText("" + rs.getString("menu_id"));

Есть ли в поле со списком, как это? cmbMCat.setSelectedItem("" + rs.getString("menu_cat"));

Как насчет переключателя? Я думаю, что используйте условие if-else. Но я не понимаю, как писать код.

Мой переключатель установлен в конце кодирования: private String type;

а тут кнопка:

private void rbMFoodActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        showCategory();
        type = "Food";

    }                                       

    private void rbMDrinkActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        showCategory();
        type = "Drink";

А это мой showCategory();

private void showCategory() {
        try {
            cmbMCat.removeAllItems();
            Statement stmt;
            stmt = con.createStatement();

            if (rbMFood.isSelected()) {
                ResultSet rs = stmt.executeQuery("SELECT * FROM menu_cat WHERE type_id = 'TY02'");
                while (rs.next()) {
                    cmbMCat.addItem(rs.getString("menu_cat"));
                }

            } else {
                ResultSet rs = stmt.executeQuery("SELECT * FROM menu_cat WHERE type_id = 'TY01'");
                while (rs.next()) {
                    cmbMCat.addItem(rs.getString("menu_cat"));
                }

            }
        } catch (Exception e) {
        }

введите здесь описание изображения

Пожалуйста, мне очень нужна ваша помощь T__T Спросите, если мой вопрос вас смущает из-за моего плохого английского.


person enjeru    schedule 07.05.2015    source источник
comment
Непонятно, что вы спрашиваете.   -  person MadProgrammer    schedule 07.05.2015
comment
Извини ._. Я хочу спросить, какой сеттер я должен использовать для переключателя? Я уже читал ваш ответ раньше. Но я все еще не понимаю. @MadProgrammer   -  person enjeru    schedule 07.05.2015
comment
Какую информацию из таблицы базы данных вы используете для хранения состояния переключателя? Как бы вы определили, нужно ли его выбирать или нет?   -  person MadProgrammer    schedule 07.05.2015
comment
Я уже загружаю картинку. Если я пишу авокадо, переключатель должен выбрать еду, а категорию - суши. Но это не работает, потому что я не знаю, какой сеттер я должен написать. Ты понял? ._. @MadProgrammer   -  person enjeru    schedule 07.05.2015
comment
JRadioButton#setSelected(boolean) это то, что вы хотите. Возможно, вы захотите взглянуть на Как использовать кнопки, флажки, и переключатели. В вашей базе данных должно быть что-то, что идентифицирует тип элемента. Это то, что я бы использовал, чтобы определить, какой переключатель выбрать   -  person MadProgrammer    schedule 07.05.2015
comment
Неа. Я не знаю, что это за логическое значение ._. Можете ли вы помочь мне написать код? @MadProgrammer   -  person enjeru    schedule 07.05.2015
comment
вы можете сделать это в текстовом поле «Потерянный фокус» «авокадо». если он соответствует строке, измените состояние переключателя по своему усмотрению. @энджеру   -  person HP's 411    schedule 07.05.2015
comment
Вам нужно взглянуть на примитивные типы данных. Прежде чем вы сможете установить состояние переключателя, вам нужно иметь средство, с помощью которого вы можете указать, какой переключатель использовать.   -  person MadProgrammer    schedule 07.05.2015


Ответы (3)


Привет Прежде всего, ваш вопрос не ясен. Приведенные ниже предложения основаны на моем понимании вашего вопроса.
При загрузке вашего приложения вы хотите инициализировать компоненты пользовательского интерфейса на основе данных, поступающих из базы данных формы (mysql).
Таким образом, вы получите одно поле, подобное истине или ложь об этом переключателе из базы данных

if(true)
   rbmFood.setSelected(true);
else
   rbmDrink.setSelected(true);
person prasad    schedule 07.05.2015
comment
Извини. Какой из непонятных? Я до сих пор запутался, что это правда или ложь ._. - person enjeru; 07.05.2015
comment
@enjeru Это значение boolean, как и int, но оно может содержать только true или false (да или нет). Когда вы используете if (rbMFood.isSelected()) {, isSelected возвращает boolean значение true или false. - person MadProgrammer; 07.05.2015

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

private void showCategory() {
    try {
        cmbMCat.removeAllItems();
        Statement stmt;
        stmt = con.createStatement();
        switch(type) {
            case "Food":
            rbMFood.setSelected(true);
            break;
            case "Drink";
            rbMDrink.setSelected(true);
            break;
        }
        if (rbMFood.isSelected()) {
            ResultSet rs = stmt.executeQuery("SELECT * FROM menu_cat WHERE type_id = 'TY02'");
            while (rs.next()) {
                cmbMCat.addItem(rs.getString("menu_cat"));
            }

        } else {
            ResultSet rs = stmt.executeQuery("SELECT * FROM menu_cat WHERE type_id = 'TY01'");
            while (rs.next()) {
                cmbMCat.addItem(rs.getString("menu_cat"));
            }

        }
    } catch (Exception e) {
    }
}
person ELITE    schedule 07.05.2015
comment
Я уже добавляю, но как раньше. Радиокнопка не выбирается. - person enjeru; 07.05.2015

При загрузке записи у вас должно быть значение, которое может определить, какой тип данных вы загружаете, например, type_id, похоже, используется в зависимости от того, какой JRadioButton выбран.

Вы должны извлечь это значение из ResultSet и либо использовать оператор if-else, либо оператор case, чтобы определить, какой переключатель вы хотите выбрать.

String type = rs.getString("type_id")
switch (type) {
    case "TY01":
        rbMDrink.setSelected(true);
        break;
    case "TY02":
        rbMFood.setSelected(true);
        break;
    // Other possible cases...
}

Это предполагает, что JRadioButton принадлежат одному и тому же ButtonGroup, поэтому выбор одного отменит выбор другого.

Подробно изучите Как использовать кнопки, флажки и переключатели для более подробной информации

person MadProgrammer    schedule 07.05.2015
comment
Я использую if ("Food".equals(type)) {rbMFood.setSelected(true);}, и это работает. Но поле со списком все еще пусто ._. - person enjeru; 07.05.2015
comment
Затем вам нужно вызвать showCategory ПОСЛЕ того, как вы установили состояния JRadioButton... - person MadProgrammer; 07.05.2015
comment
как написать код? хе-хе. Я уже пишу showCategory(); после этого, но не работает. - person enjeru; 07.05.2015
comment
Все, что должно быть, это пара фрагментов кода вне контекста. Рассмотрите возможность предоставления запускаемого примера, демонстрирующего вашу проблему. Это не дамп кода, а пример того, что вы делаете, который подчеркивает проблему, с которой вы столкнулись. Это приведет к меньшей путанице и лучшим ответам. - person MadProgrammer; 07.05.2015