java radiobutton获取信息_如何获取JRadioButton的文本值

实现像你想要的设计(我认为)的关键是使用阵列最大限度的力量。例如,您可以拥有一个包含JRadioButton文本的2维String数组和一个ButtonGroups的1维数组,然后可以轻松设置GUI并使用for循环和嵌套for循环查询GUI(和使用mKorbel的优秀建议)。

例如:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Foo002 extends JPanel {

public static final String[][] RADIO_TEXTS = {

{"A1","A2","A3","A4"}, {"B1","B2","B3","B4"},

{"C1","C2","C3","C4"}, {"D1","D2","D3","D4"},

{"E1","E2","E3","E4"}, {"F1","F2","F3","F4"},

{"G1","G2","G3","G4"}, {"H1","H2","H3","H4"},

{"I1","I2","I3","I4"}, {"J1","J2","J3","J4"},

{"K1","K2","K3","K4"}, {"L1","L2","L3","L4"},

{"M1","M2","M3","M4"}, {"N1","N2","N3","N4"},

{"O1","O2","O3","O4"}, {"P1","P2","P3","P4"},

{"Q1","Q2","Q3","Q4"}, {"R1","R2","R3","R4"},

{"S1","S2","S3","S4"}, {"T1","T2","T3","T4"}

};

private ButtonGroup[] btnGroups = new ButtonGroup[RADIO_TEXTS.length];

public Foo002() {

JPanel radioPanel = new JPanel(new GridLayout(0, 2));

for (int i = 0; i < RADIO_TEXTS.length; i++) {

JPanel panel = new JPanel(new GridLayout(1, 0));

btnGroups[i] = new ButtonGroup();

for (int j = 0; j < RADIO_TEXTS[i].length; j++) {

String text = RADIO_TEXTS[i][j];

JRadioButton rBtn = new JRadioButton(text);

rBtn.setActionCommand(text);

btnGroups[i].add(rBtn);

panel.add(rBtn);

}

panel.setBorder(BorderFactory.createLineBorder(Color.black));

radioPanel.add(panel);

}

JButton getRadioChoicesBtn = new JButton(new AbstractAction("Get Radio Choices") {

public void actionPerformed(ActionEvent arg0) {

for (ButtonGroup btnGroup : btnGroups) {

ButtonModel btnModel = btnGroup.getSelection();

if (btnModel != null) {

System.out.println("Selected Button: " + btnModel.getActionCommand());

}

}

}

});

JPanel btnPanel = new JPanel();

btnPanel.add(getRadioChoicesBtn);

setLayout(new BorderLayout());

add(radioPanel, BorderLayout.CENTER);

add(btnPanel, BorderLayout.SOUTH);

}

private static void createAndShowGui() {

JFrame frame = new JFrame("RadioPanels");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.getContentPane().add(new Foo002());

frame.pack();

frame.setLocationRelativeTo(null);

frame.setVisible(true);

}

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

public void run() {

createAndShowGui();

}

});

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值