实现了单选、多选和下拉框的实现,
以及监听当按下提交时,选择了哪些选项,
以及提交后,选项的状态重置
单选框
效果如下:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.BoxLayout;
import javax.swing.BorderFactory;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JButton;
import javax.swing.ButtonGroup;
import javax.swing.JRadioButton;
public class DanXuan extends JFrame
{
JPanel panelDanXuan;
JLabel labTiMu;
JButton btSubmit;
//创建一个按钮组
ButtonGroup option;
JRadioButton optionA;
JRadioButton optionB;
JRadioButton optionC;
JRadioButton optionD;
public void init()
{
panelDanXuan = new JPanel();
labTiMu = new JLabel("题目1");
btSubmit = new JButton("提交");
option = new ButtonGroup();
optionA = new JRadioButton("A.");
optionB = new JRadioButton("B.");
optionC = new JRadioButton("C.");
optionD = new JRadioButton("D.");
//把按钮加到同一个按钮组
option.add(optionA);
option.add(optionB);
option.add(optionC);
option.add(optionD);
//将按钮按列排列
panelDanXuan.setLayout(new BoxLayout(panelDanXuan,BoxLayout.Y_AXIS));
panelDanXuan.add(optionA);
panelDanXuan.add(optionB);
panelDanXuan.add(optionC);
panelDanXuan.add(optionD);
panelDanXuan.add(btSubmit);
//设置边框
panelDanXuan.setBorder(BorderFactory.createTitledBorder("单选"));
this.add(labTiMu,BorderLayout.NORTH);
this.add(panelDanXuan);
this.setTitle("单选");
this.setSize(500,300);
this.setLocation(100, 100);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.repaint();
//监听确认按钮
btSubmit.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(optionA.isSelected() == true)
{
}
else if(optionB.isSelected() == true)
{
}
else if(optionC.isSelected() == true)
{
}
else if(optionD.isSelected() == true)
{
}
else //没有选按钮便提交
{
}
//点击确认按钮后,改变题目的值
labTiMu.setText("题目2");
//重置按钮的值
option.clearSelection();
}
});
}
public static void main(String[] args)
{
DanXuan test = new DanXuan();
test.init();
}
}
复选框
效果如下:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.BoxLayout;
import javax.swing.BorderFactory;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JButton;
import javax.swing.ButtonGroup;
import javax.swing.JRadioButton;
import javax.swing.JCheckBox;
public class DuoXuan extends JFrame
{
JPanel panelDuoXuan;
JLabel labTiMu;
JButton btSubmit;
//创建一个按钮组
JCheckBox optionA;
JCheckBox optionB;
JCheckBox optionC;
JCheckBox optionD;
public void init()
{
panelDuoXuan = new JPanel();
labTiMu = new JLabel("题目1");
btSubmit = new JButton("提交");
optionA = new JCheckBox("A.");
optionB = new JCheckBox("B.");
optionC = new JCheckBox("C.");
optionD = new JCheckBox("D.");
//将按钮按列排列
panelDuoXuan.setLayout(new BoxLayout(panelDuoXuan,BoxLayout.Y_AXIS));
JButton c=new JButton(" ");
c.setContentAreaFilled(false); //按键透明
c.setBorderPainted(false); //边框透明
c.setEnabled(false);
panelDuoXuan.add(optionA);
panelDuoXuan.add(optionB);
panelDuoXuan.add(optionC);
panelDuoXuan.add(optionD);
panelDuoXuan.add(btSubmit);
//设置边框
panelDuoXuan.setBorder(BorderFactory.createTitledBorder("多选"));
this.add(labTiMu,BorderLayout.NORTH);
this.add(panelDuoXuan);
this.setTitle("多选");
this.setSize(500,300);
this.setLocation(100, 100);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.repaint();
//监听确认按钮
btSubmit.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(optionA.isSelected() == true)
{
}
if(optionB.isSelected() == true)
{
}
if(optionC.isSelected() == true)
{
}
if(optionD.isSelected() == true)
{
}
//没有选按钮便提交
if(optionA.isSelected() == false && optionB.isSelected() == false
&& optionC.isSelected() == false && optionD.isSelected() == false)
{
}
//点击确认按钮后,改变题目的值
labTiMu.setText("题目2");
//重置按钮的值
optionA.setSelected(false);
optionB.setSelected(false);
optionC.setSelected(false);
optionD.setSelected(false);
}
});
}
public static void main(String[] args)
{
DuoXuan test = new DuoXuan();
test.init();
}
}
下拉框
效果如下:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.BoxLayout;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.ButtonGroup;
import javax.swing.JRadioButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
public class XiaLaKuang extends JFrame
{
JPanel panelXiaLaKuang;
JLabel labTiMu;
JComboBox xiaLa;
JButton btSubmit;
public void init()
{
panelXiaLaKuang = new JPanel();
labTiMu = new JLabel("题目1");
btSubmit = new JButton("提交");
xiaLa = new JComboBox();
xiaLa.addItem("A.");
xiaLa.addItem("B.");
xiaLa.addItem("C.");
xiaLa.addItem("D.");
panelXiaLaKuang.add(xiaLa);
panelXiaLaKuang.add(btSubmit);
//设置边框
panelXiaLaKuang.setBorder(BorderFactory.createTitledBorder("下拉框"));
this.add(labTiMu);
this.add(panelXiaLaKuang);
this.setLayout(new GridLayout(2,1));
this.setTitle("下拉框");
this.setSize(500,300);
this.setLocation(100, 100);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.repaint();
//监听确认按钮
btSubmit.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(xiaLa.getSelectedIndex() == 0)
{
System.out.println("A");
}
else if(xiaLa.getSelectedIndex() == 1)
{
System.out.println("B");
}
else if(xiaLa.getSelectedIndex() == 2)
{
}
else if(xiaLa.getSelectedIndex() == 3)
{
}
//点击确认按钮后,改变题目的值
labTiMu.setText("题目2");
//重置按钮的值
xiaLa.setSelectedIndex(0);
}
});
}
public static void main(String[] args)
{
XiaLaKuang test = new XiaLaKuang();
test.init();
}
}