java游戏开发基础Swing之JRadioButton
© 版权声明:本文为博主原创文章,转载请注明出处
1.按钮(JButton)
Swing中的按钮是JButton,它是javax.swing.AbstractButton类的子类,Swing中的按钮可以显示图像,并且可以将按钮设置为窗口的默认图标,而且还可以将多个图像指定给一个按钮
JButton的常用构造方法:
JButton(Icon icon):按钮上显示图标
JButton(String text):按钮上显示文字
JButton(String text, Icon icon):按钮上即显示图标又显示文字
JButton的常用方法:
setText(String text):设置按钮的标签文本
setIcon(Icon defaultIcon):设置按钮在默认状态下显示的图片
setRolloverIcon(Icon rolloverIcon):设置当光标移动到按钮上方时显示的图片
setPressedIcon(Icon pressedIcon):设置当按钮被按下时显示的图片
setContentAreaFilled(boolean b):设置按钮的背景为透明,当设为false时表示透明,默认为不透明
setBorderPainted(boolean b):设置为不绘制按钮的边框,当设为false时表示不绘制,默认为绘制
2.单选按钮(JRadioButton)
JRadioButton组件实现的一个单选按钮。可以单独使用,也可以与ButtonGroup类联合使用,当单独使用时,该单选按钮可以被选定和取消选定;当与ButtonGroup联合使用,此时用户只能选定按钮组中的一个单选按钮
JRadioButton的常用方法:
setText(String text):设置单选按钮的标签文本
setSelected(boolean b):设置单选按钮的状态,默认情况下未被选中,当设为true时表示单选按钮被选中
add(AbstractButton b):添加按钮到按钮组中
remove(AbstractButton b):从按钮组中移除按钮
getButtonCount():返回按钮组中包含的按钮个数
getElements():返回一个Enumeration类型的对象,通过该对象可以遍历按钮组中包含的所有按钮对象
isSelected():返回单选按钮的状态
setSelected(boolean b):设定单选按钮的状态
3.案例:选中用户喜欢的城市
3.1 项目结构
3.2 pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.swing</groupId> <artifactId>swing</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>swing</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
3.3 JRadioButtonTest.java
package org.swing.jradiobutton; import java.awt.Container; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.BorderFactory; import javax.swing.ButtonGroup; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JRadioButton; public class JRadioButtonTest { JFrame f = null; public JRadioButtonTest() { f = new JFrame("单选框示例");// 创建一个JFrame窗口对象 Container contentPane = f.getContentPane();// 创建一个内容面板容器 contentPane.setLayout(new FlowLayout());// 设置该窗口的布局 JPanel p1 = new JPanel();// 创建一个面板对象 p1.setLayout(new GridLayout(1, 3));// 设置布局管理器的格式 p1.setBorder(BorderFactory.createTitledBorder("选择你喜欢的城市")); // 定义3个JRadioButton单选按钮 JRadioButton r1 = new JRadioButton("北京"); JRadioButton r2 = new JRadioButton("上海"); JRadioButton r3 = new JRadioButton("广州"); // 创建一个按钮组对象,将按钮绑定成一组,实现只能选中一个 ButtonGroup group = new ButtonGroup(); group.add(r1); group.add(r2); group.add(r3); // 将按钮对象添加到面板中 p1.add(r1); p1.add(r2); p1.add(r3); r1.setSelected(true);// 设置r1单选按钮的状态为选中 // 将面板对象添加到内容面板容器中 contentPane.add(p1); f.pack();// 自动调节窗口大小 f.setVisible(true);// 显示窗口 f.addWindowListener(new WindowAdapter() {// 添加一个窗口监听器 @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } public static void main(String[] args) { new JRadioButtonTest(); } }
3.4 效果预览
参考:《Java游戏变成原理与实践教程》