import javax.swing.*;
创新互联自2013年起,是专业互联网技术服务公司,拥有项目成都网站建设、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元金林做网站,已为上家服务,为金林各地企业和个人服务,联系电话:18982081108
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.applet.*;
import java.sql.*;
public class Test extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
private JPanel jPanel;
private JButton jButton1,jButton2,jButton3;
private JTextArea ta1;
private JTextField tf1;
private Checkbox cb1,cb2;
private CheckboxGroup g;
public Test(String title) {
super(title);
init();
}
private void init() {
jPanel=new JPanel();
jPanel.setLayout(new FlowLayout());
ta1=new JTextArea();
tf1=new JTextField(20);
jButton1=new JButton("查询记录");
jButton2=new JButton("添加用户");
jButton3=new JButton("添加记录");
jButton1.addActionListener(this);
jButton2.addActionListener(this);
jButton3.addActionListener(this);
g = new CheckboxGroup();
cb1 = new Checkbox("1", g, false);
cb2 = new Checkbox("2", g, true);
jPanel.add(ta1);
jPanel.add(jButton1);
jPanel.add(jButton2);
jPanel.add(jButton3);
jPanel.add(tf1);
jPanel.add(cb1);
jPanel.add(cb2);
this.add(jPanel);
this.setSize(300,700);
this.setResizable(false);
this.setVisible(true);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(final WindowEvent e) {
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e) {
if(e.getSource().equals(jButton1)){
if(cb1.isSelected()){
System.out.println("1");
}
else{
System.out.println("2");
}
}
}
}
给你做了小小的修改,你再试试
没用的,你得创建一个ButtonGroup对象,然后把单选按钮对象加进去之后这样就只能选中一个了!比如:
JRadioButton b1=new JRadioButton("b1");
JRadioButton b2=new JRadioButton("b2");
JRadioButton b3=new JRadioButton("b3");
ButtonGroup bgroup = new ButtonGroup();
bgroup.add(b1);
bgroup.add(b2);
bgroup.add(b3);
以上代码只能选中一个按钮!
(1)定义一个“题目”类,属性:题号,用户答案,标准答案,题目
(2)定义一个 “题目”集合,用于保存这4道题
(3)界面中定义题目+4个选项,一个 init(int num)方法,num是题号,默认是1(当打开界面时显示第一题),init的内容是显示“题号+题目+4个选项+判断”
单选按钮上“判断”:根据num查找题目对象obj,
if(选项value=obj.用户答案) { selected="selected" } selected="selected" 是单选按钮的属性,表示选中(因为一开始用户答案是null,所以刚看到新题目时没有选种任何选项)
(4)当选种选项后点下一题,执行update方法:
根据题号,对“题目集合”中 的一个题目对象的“用户答案”进行赋值,把num(题号)加1,然后执行init方法,让界面显示下一道题,因为是新题(该题的用户答案为null),任何选项都不会选种。
(5)做完题目,点上一题,num-1,执行init,init会根据num查找“题目集合”中的题目对象,判断“用户答案”是3,当4个选项逐一判断后,就只有C(value=3)被选中,也就是显示用户刚刚选中的那个答案。
以上,仅供参考。只是提供思路,不帮实现代码,望理解。
打开界面是,
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
public class aaa
{
/**
* @param args
*/
public static void main(String[] args)
{
TextFrame frame = new TextFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class TextFrame extends JFrame
{
public TextFrame()
{
setTitle("考试题目");
setBounds(300,300,200,120);
TextPanel panel = new TextPanel();
add(panel);
}
}
class TextPanel extends JPanel
{
private JRadioButton r1,r2;
public TextPanel()
{
//实例化单选按钮
r1 = new JRadioButton("男");
r2 = new JRadioButton("女");
JPanel p = new JPanel();
p.setBorder(BorderFactory.createTitledBorder("请选择性别"));
p.add(r1);
p.add(r2);
ButtonGroup bg = new ButtonGroup();
//将需要划分为一组的单选按钮对象添加到按钮组(注意只是逻辑上添加 和界面没有关系)
bg.add(r1);
bg.add(r2);
add(p);
}
}
可以参考下面的添加两个单选项的
最后记得将两个单选项放到一个buttonGroup即可
//添加两个单选项
choice1.setBounds(10,60,300,20); //放在左上
choice2.setBounds(10,180,300,20); //放在左中
choice1.setForeground(Color.ORANGE);
choice2.setForeground(Color.ORANGE);
choice1.setFont(new Font("楷书",Font.BOLD+Font.HANGING_BASELINE,20));
choice2.setFont(new Font("楷书",Font.BOLD+Font.HANGING_BASELINE,20));
choice1.setOpaque(false);
choice2.setOpaque(false);
buttonGroup.add(choice1); //为上面两个choice创建一个多斥作用域
buttonGroup.add(choice2);
使用图形用户界面
class Gui extends JFrame implements ActionListener {
private JButton jb = new JButton() ;
Gui() {
super("Gui") ;
this.add(jb) ;//添加按钮
jb.addActionListener(this) ;//按钮事件监听
//当然你可以按自己的想法做布局
this.pack();
this.setVisible(true);//可见
this.setResizable(false);//不可修改大小
this.setLocation(100, 100);//起始位置
}
//覆写ActionListener接口中的事件处理方法
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == jb) {
//事件处理
}
}
}