html for循环多选框,如何在Java中为for循环创建多个复选框?

我实现了一个应该帮助你获得结果的原始示例。我建议你尝试一下,如果它满足你的需求,我会很高兴给你更多的细节和编辑我的答案。请记住,如果您只需要一个行选择,您应该更喜欢JRadioButton。

package stackoverflow.answers;

import java.awt.BorderLayout;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import java.awt.event.KeyEvent;

import java.util.*;

import javax.swing.*;

public class SwingCheckBoxDemo extends JPanel implements ItemListener {

private HashMap> map = new HashMap<>();

private JLabel _label;

private static final int MAX_CHECKS = 30;

public SwingCheckBoxDemo() {

super(new BorderLayout());

JCheckBox checkBox;

Random r = new Random();

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

_label = new JLabel("You selected nothing");

checkPanel.add(_label);

for (int i = 0; i < MAX_CHECKS; i++) {

StringBuilder sb = new StringBuilder();

ArrayList a = new ArrayList<>();

for (int j = 0; j < 3; j++) {

Integer temp = (r.nextInt()) % 100;

a.add(temp);

sb.append(temp).append(" ");

}

checkBox = new JCheckBox(sb.toString().trim());

checkBox.setName("CheckBox" + i);

checkBox.addItemListener(this);

map.put(checkBox, a);

checkPanel.add(checkBox);

}

add(checkPanel);

}

public void itemStateChanged(ItemEvent e) {

JCheckBox source = (JCheckBox) e.getItemSelectable();

if (e.getStateChange() == ItemEvent.SELECTED) {

ArrayList list = map.get(source);

_label.setText("You've just selected " + list);

}

}

private static void createAndShowGUI() {

JFrame _frame = new JFrame("Check box loop");

_frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

_frame.setSize(800, 600);

JComponent newContentPane = new SwingCheckBoxDemo();

newContentPane.setOpaque(true);

_frame.setContentPane(newContentPane);

_frame.setVisible(true);

}

public static void main(String[] args) {

javax.swing.SwingUtilities.invokeLater(new Runnable() {

public void run() {

createAndShowGUI();

}

});

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值