GUI编程基础学习(三)——单选按钮、复选框、组合框

单选按钮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();
	}

}

猜你喜欢

转载自blog.csdn.net/A1344714150/article/details/86020150