具体情况是:从数据库读出数据,生成复选框,修改后保存到数据库。只需要动态生成复选框,并得到选中值就可以,谢谢给位了,gui好久没碰了,都忘完了,急啊!!!!!求简短精炼的代码!!!!!!急急急……………………跪求!!!!小弟Q:1004143305还问一下,就是复选框没有分组的说法吗?通过分组直接获取该组已选中值,多好的。我看了checkboxgroup 里面的selected返回的是一个object 而不是一个对象数组。checkboxgroup感觉没啥用是的求教育。比如同一个gui窗口中有多个类型的复选框,比如,一个是兴趣爱好的复选框,另一个是特长的复选框,是不是只能通过checkbox的对象来区分,有没有什么直接区分哪些是兴趣,哪些是特长????主要是前面的问题。摆脱了!!!!!!!!!!
这个方法怎么使用?
Checkbox cb = null;
for(int i=0;i<3;i++)
{
cb=new Checkbox("cb"+i);
//cb.setCheckboxGroup(cbg);
cb.setState(true);
gsg.jp1.add(cb);
}
System.out.println(cb.getSelectedObjects().length);//输出结果是:1好像它始终只得到最后一个被选中的诶,请问该怎么使用
CheckBoxGroup 同地时间只能选择一个
import java.awt.event.*;
import javax.swing.*;
public class CK extends JFrame {
JPanel jp=(JPanel)this.getContentPane();
private JButton jb;
private Checkbox[] cb;
public CK()
{
jp.setLayout(null);
final int n=20;
cb=new Checkbox[n];
jb=new JButton("submit");
jb.setBounds(new Rectangle(20,20,75,25));
for(int i=0;i<n;i++)
{
cb[i]=new Checkbox(""+(i+1));
cb[i].setBounds(new Rectangle(20,50+20*i,60,25));
jp.add(cb[i]);
}
jp.add(jb);
jb.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
for(int i=0;i<n;i++)
{ try
{
if(cb[i].getSelectedObjects().length==1)//判断是否选中,1为选中,报错为没选中.
{
System.out.println(cb[i].getLabel());//输出选中的
}
}
catch(Exception ex)
{ //报错为没选中,不需要输出报错
}
}
}
});
}
public static void main(String[] args) {
CK frame=new CK();
frame.setSize(800,600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}2、使用JRadioButtonimport java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class HK extends JFrame {
JPanel jp=null;
JRadioButton[] jb;
JButton jt=new JButton("Submit");
public HK()
{
jp=(JPanel)this.getContentPane();
jp.setLayout(null);
jb=new JRadioButton[3];
for(int i=0;i<3;i++)
{
jb[i]=new JRadioButton("jb"+(i+1));
}
for(int i=0;i<3;i++)
{
jb[i].setBounds(new Rectangle(20+60*i,20,60,25));
jp.add(jb[i]);
}
jt.setBounds(new Rectangle(20,60,75,25));
jp.add(jt);
jt.addActionListener(new HK_bt_actionAdapter(this));
}
public static void main(String[] args) {
HK frame=new HK();
frame.setSize(400,200);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void bt_actionPerformed(ActionEvent e) {
for(int i=0;i<3;i++)
{
if(jb[i].isSelected())//判断是否选中,true为选中,false为没选中.
{
System.out.println(jb[i].getText());//输出选中的
}
}
}
}
class HK_bt_actionAdapter implements ActionListener {
private HK adaptee;
HK_bt_actionAdapter(HK adaptee) {
this.adaptee = adaptee;
} public void actionPerformed(ActionEvent e) {
adaptee.bt_actionPerformed(e);
}
}
非常感谢你的回复。!!!!也许我没能表述得很清楚。不过昨天突然想到一个很好的见解办法那就是给每个jcheckbox 在生成时就给他添加ItemListener监听,在itemStateChanged触发。这个就可以扑捉到每个jcheckbox的状态改变,并把选中值保存到了一个treeset里。如果进一步的状态改变就调整treeset里的值。从而达到对整个jcheckbox选中与否进行记录!!!思路大概就这样。已经成功解决!!!!谢谢你们的光临,于帮助!!!!!有更好的解决方法,小弟也很愿意采纳!!!!!!!!!!!!