gpt4 book ai didi

java - 如何设置可选择的JRadioButton的数量

转载 作者:行者123 更新时间:2023-12-01 18:46:14 25 4
gpt4 key购买 nike

我该如何设置 JRadioButtons 的可选项目数量?我尝试将单选按钮添加到按钮组,并覆盖按钮组类,但无法确定要修改哪个方法。

基本上,我只想允许选择两个单选按钮。我知道使用复选框可以做到这一点,但我需要单选按钮的“圆度”,并且认为这应该是一种更简单的方法,而不是修改复选框的外观和感觉。

非常感谢! :)

最佳答案

这是一个例子:

enter image description here

package com.haraj.test.java;

import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.LinkedList;
import java.util.Queue;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.SwingUtilities;

public class JRadioButtonTest
{
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel contentPane = (JPanel) frame.getContentPane();
contentPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new GridLayout());

final Queue<JRadioButton> selectedButtons = new LinkedList<JRadioButton>();
ItemListener listener = new ItemListener()
{
@Override
public void itemStateChanged(ItemEvent e)
{
JRadioButton newButton = (JRadioButton) e.getSource();

if(e.getStateChange() == ItemEvent.DESELECTED) selectedButtons.remove(newButton);
else
{
if(selectedButtons.size() == 2)
{
JRadioButton oldButton = selectedButtons.poll();
if(oldButton != newButton) oldButton.setSelected(false);
}
selectedButtons.add(newButton);
}
}
};

JRadioButton[] buttons = new JRadioButton[6];
for(int i = 0; i < buttons.length; i++)
{
buttons[i] = new JRadioButton();
buttons[i].addItemListener(listener);
contentPane.add(buttons[i]);
}

frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
});
}
}

关于java - 如何设置可选择的JRadioButton的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17684907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com