单选按钮JRadioButton
JRadioButton组件用于实现一个单选按钮。JRadioButton类可以单独使用,也可以与ButtonGroup类联合使用,当其单独使用时,该单选按钮可以被选定和被取消选定;当与ButtonGroup类联合使用时,需要使用add()方法将JRadioButton添加到ButtonGroup中,组成一个单选按钮按钮组,此时用户只能选定按钮组中的一个单选按钮。
JRadioButton常用构造方法:
①JRadioButton(Icon icon):创建一个带图标的单选按钮
②JRadioButton(Icon icon,boolean isSeleted):创建一个带图标的单选按钮,可以设定其是否被选中
③JRadioButton(String text):创建一个带文本的单选按钮
④JRadioButton(String text,boolean isSelected):创建一个带文本的单选按钮,可以设定其是否被选中
⑤JRadioButton(String text,Icon icon,boolean isSelected):创建一个带文本图标和指定选中状态的单选按钮
JRadioButton常用方法:
①setText(String text):设置单选按钮使用的文本
②setSelected(boolean isSelected):设置单选按钮的选中状态
③setIcon(Icon icon):设置单选按钮使用到的图标
案例:使用单选按钮选择你的居住城市,点击提交按钮,弹框显示自己的选择。
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Client extends JFrame{
public Client(){
JButton submit = new JButton("提交");
this.getContentPane().add(new JLabel("选择你居住的城市:"));
JRadioButton button1 = new JRadioButton("北京");//实例化四个单选按钮对象
JRadioButton button2 = new JRadioButton("上海");
JRadioButton button3 = new JRadioButton("南昌");
JRadioButton button4 = new JRadioButton("杭州");
ButtonGroup buttonGroup = new ButtonGroup();//实例化一个单选按钮组
buttonGroup.add(button1);//向单选按钮组添加单选按钮
buttonGroup.add(button2);
buttonGroup.add(button3);
buttonGroup.add(button4);
this.getContentPane().setLayout(new FlowLayout());//设置布局为流布局
this.getContentPane().add(button1);//添加单选按钮
this.getContentPane().add(button2);
this.getContentPane().add(button3);
this.getContentPane().add(button4);
this.getContentPane().add(submit);//添加提交按钮
button1.setSelected(true);//设置北京单选按钮选中状态
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//当用户点击窗体右上角x时自动退出程序
pack();//自适应
setVisible(true);//展示窗体
setLocationRelativeTo(null);//让窗口显示在屏幕正中间
submit.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if(button1.isSelected()){
JOptionPane.showMessageDialog(null, "你目前住在北京。");
}else if(button2.isSelected()){
JOptionPane.showMessageDialog(null, "你目前住在上海。");
}else if(button3.isSelected()){
JOptionPane.showMessageDialog(null, "你目前住在南昌。");
}else{
JOptionPane.showMessageDialog(null, "你目前住在杭州。");
}
}
});
}
public static void main(String[] args) {
new Client();
}
}
复选框JCheckBox
使用复选框可以进行多项选择,Swing中的复选框和AWT的复选框相比,优点是Swing复选框中可以添加图片。复选框可以为每一次的单机操作添加一个事件。
JCheckBox常用构造方法:
①JCheckBox(Icon icon):创建一个带图标的复选框
②JCheckBox(Icon icon,boolean isSelected):创建一个带图标以及指定选中状态的复选框
③JCheckBox(String text):创建一个带文本的复选框
④JCheckBox(String text,boolean isSelected):创建一个带文本以及指定选中状态的复选框
⑤JCheckBox(String text,Icon icon):创建一个带文本和图标的复选框
⑥JCheckBox(String text,Icon icon,boolean isSelected):创建一个带文本和图标以及指定选中状态的复选框
JCheckBox常用方法:
①isSelected():返回复选框状态,true时表示选中
②setSelected(boolean isSeleceted):设置复选框状态
案例:使用复选框选择你的爱好,点击提交按钮,弹框显示自己的选择
import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;
public class Client extends JFrame{
public Client(){
JButton submit = new JButton("提交");
JCheckBox read = new JCheckBox("阅读");
JCheckBox sing = new JCheckBox("唱歌");
JCheckBox dance = new JCheckBox("跳舞");
JCheckBox code = new JCheckBox("编程");
code.setSelected(true);//默认勾选编程复选框
this.getContentPane().setLayout(new FlowLayout());//设置内置面板布局格式为流布局
this.getContentPane().add(new JLabel("选择你的爱好:"));//添加标签到内置面板
this.getContentPane().add(read);//添加复选框到内置面板
this.getContentPane().add(sing);
this.getContentPane().add(dance);
this.getContentPane().add(code);
this.getContentPane().add(submit);//添加提交按钮到内置面板
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//当用户点击窗体右上角x时自动退出程序
pack();//自适应
setVisible(true);//展示窗体
setLocationRelativeTo(null);//让窗口显示在屏幕正中间
submit.addMouseListener(new MouseAdapter() {//添加点击事件
@Override
public void mouseClicked(MouseEvent e) {
String s = "你的爱好有";
int index = 0;
if(read.isSelected()){
if(index>0)
s += "、";
s+="阅读";
index++;
}
if(sing.isSelected()){
if(index>0)
s += "、";
s+="唱歌";
index++;
}
if(dance.isSelected()){
if(index>0)
s += "、";
s+="跳舞";
index++;
}
if(code.isSelected()){
if(index>0)
s += "、";
s+="编程";
index++;
}
JOptionPane.showMessageDialog(null, s);//弹框
}
});
}
public static void main(String[] args) {
new Client();
}
}
组合框JComboBox
JComboBox组件用来创建组合框对象。根据组合框是否可编辑的状态,可以将组合框分为两种常见的外观。可编辑状态外观是文本框和下拉列表的组合,不可编辑状态外观是按钮和下拉列表的组合。在按钮或文本的右侧有一个带有三角符号的下拉按钮,用户点击该按钮,可以出现一个内容列表。组合框通常用于从列表的多个项目中选择一个的操作。
JComboBox常用构造方法:
①JComboBox():创建一个默认模型的组合框
②JComboBox(ComboBoxModel model):创建一个指定模型的组合框
③JComboBox(Object[] items):创建一个具有指定数组定义列表内容的组合框
案例:通过JComboBox设计一个选择年龄和选择喜欢水果的程序,点击提交按钮,显示选择。
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Client extends JFrame{
public Client(){
JButton submit = new JButton("提交");
String[] ages = new String[100];
String[] fruits = {"西瓜","草莓","芒果","橙子"};
for(int i=0;i<100;i++){
ages[i] = i+"";
}
JComboBox comboBox1 = new JComboBox(ages);
JComboBox comboBox2 = new JComboBox(fruits);
comboBox1.setSelectedIndex(18);//默认18岁
comboBox1.setEditable(false);//不可编辑
comboBox2.setSelectedItem(fruits[2]);//默认芒果
comboBox2.setEditable(true);//可编辑
this.getContentPane().setLayout(new FlowLayout());//设置成流布局
this.getContentPane().add(new JLabel("选择你的年龄和最爱的水果:"));
this.getContentPane().add(comboBox1);//添加组合框到内置面板
this.getContentPane().add(comboBox2);
this.getContentPane().add(submit);//添加提交按钮到内置面板
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//当用户点击窗体右上角x时自动退出程序
pack();//自适应
setVisible(true);//展示窗体
setLocationRelativeTo(null);//让窗口显示在屏幕正中间
submit.addMouseListener(new MouseAdapter() {//添加点击事件
@Override
public void mouseClicked(MouseEvent e) {
String message = "你今年"+comboBox1.getSelectedItem()+"岁,你最爱的水果是"+comboBox2.getSelectedItem();
JOptionPane.showMessageDialog(null, message);
}
});
}
public static void main(String[] args) {
new Client();
}
}