java - 根据从数据库中检索到的文本选择 jButton

标签 java mysql database swing radio-button

关于将数据库用于 netbeans 中的程序,我又遇到了问题。这是我的问题,我有一个包含男性和女性按钮的按钮组。当您单击“提交”按钮时,所选按钮会将其文本写入 mySQL 数据库。所以问题是,我不知道它的反面。

我会尽可能清楚地说明我的问题。我想从数据库中检索文本并在按钮组的其中一个按钮中选择检索到的文本。

例如,我从数据库中检索了“男性”,所以我想要一个代码来选择“男性”单选按钮。谢谢。

编辑:

所以我现在明白了。我正在寻找一些方法,可以立即从数据库中检索到的文本中选择一个按钮。我使用了粗略的过程,有点乱,但效果很好!

String temp = (jTable1.getModel().getValueAt(row, 11).toString());

    if ("Male".equals(temp)) {
        maleRButton.setSelected(true);
    }
    else if ("Female".equals(temp)) {
        femaleRButton.setSelected(true);
    }

最佳答案

ButtonGroup 有一个 setSelected(...) 方法,可以帮助您设置它包含的 JRadioButton 之一,并设置它的状态。例如在下面的代码中,我使用 JComboBox 选择一个 JRadioButton 文本,然后使用 ButtonGroup 激活所选的字符串:

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Enumeration;    
import javax.swing.*;

public class SelectButton extends JPanel {
    private static final String[] TEXTS = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday"};
    private ButtonGroup buttonGroup = new ButtonGroup();
    private JComboBox<String> comboBox = new JComboBox<>(TEXTS);

    public SelectButton() {
        JPanel rBtnPanel = new JPanel(new GridLayout(1, 0));
        for (String text : TEXTS) {
            JRadioButton radioButton = new JRadioButton(text);
            radioButton.setActionCommand(text);
            rBtnPanel.add(radioButton);
            buttonGroup.add(radioButton);
        }

        comboBox.setSelectedIndex(-1);
        comboBox.addActionListener(new ComboListener());
        JPanel bottomPanel = new JPanel();
        bottomPanel.add(comboBox);

        setLayout(new BorderLayout());
        add(rBtnPanel, BorderLayout.CENTER);
        add(bottomPanel, BorderLayout.PAGE_END);
    }

    private class ComboListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            String command = comboBox.getSelectedItem().toString();
            Enumeration<AbstractButton> elements = buttonGroup.getElements();
            while (elements.hasMoreElements()) {
                AbstractButton btn = elements.nextElement();
                if (btn.getActionCommand().equals(command)) {
                    buttonGroup.setSelected(btn.getModel(), true);
                }
            }

        }
    }

    private static void createAndShowGui() {
        SelectButton mainPanel = new SelectButton();

        JFrame frame = new JFrame("Main");
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.getContentPane().add(mainPanel);
        frame.pack();
        frame.setLocationByPlatform(true);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGui();
            }
        });
    }
}

关于java - 根据从数据库中检索到的文本选择 jButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33843794/

相关文章:

java - 圆形 PNG 图像使其在 Android 上具有交互性

java - 计算文件的平均值

Python 到 SQL : list of lists

mysql - 如何在mysql的新列中将id拆分为多个值

PHP 扩展现有类以进行表插入/更新

database - 错误 : Could not find or load main class org. h2.tools.RunScript

java - 池 GRPC ManagedChannels 和 BlockingStubs 还是共享之一?

java - 对于具有一种实现的接口(interface),我如何才能直接进入该实现?

java - 如何使用JPA获取数据库连接状态?

html - Servlet 在连接 mysql 时没有任何响应