java游戏开发之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游戏变成原理与实践教程》

时间: 2024-07-29 18:27:11

java游戏开发之JRadioButton的相关文章

[Unity3D]Unity3D游戏开发之从Unity3D到Eclipse

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本

【转载】浅谈游戏开发之2D手游工具

浅谈游戏开发之2D手游工具 来源:http://www.gameres.com/459713.html 游戏程序 平台类型: iOS Android  程序设计: 其它  编程语言:   引擎/SDK: 其它  全球手游行业规模将突破250亿美元,越来越多的开发者开始进入手游研发领域,而作为一名菜鸟,很多时候,如果没有其他开发者的建议,会走很多弯.独立工作室Sheado.net公司的Chad Ata在博客中分享了他们从一开始进入手游研发到如今四年多以来积累的经验,希望可以给新入行者提供一些帮助.

[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(中)

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本文作者:

iOS游戏开发之UIDynamic

iOS游戏开发之UIDynamic 简介 什么是UIDynamic UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架 可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象重力.弹性碰撞等现象 物理引擎的价值 广泛用于游戏开发,经典成功案例是“愤怒的小鸟” 让开发人员可以在远离物理学公式的情况下,实现炫酷的物理仿真效果 提高了游戏开发效率,产生更多优秀好玩的物理仿真游戏 知名的2D物理引擎 Box2d Chipmunk 使用步骤 要想使用UIDynamic来实现物理仿

[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(下)

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本文作者:

Cocos2d-x游戏开发之lua编辑器 subime 搭建,集成cocos2dLuaApi和自有类

Sublime Text http://baike.baidu.com/view/10701920.htm?from_id=8130415&type=syn&fromtitle=Sublime&fr=aladdin 简介 Sublime Text 是一个代码编辑器(Sublime Text 2是收费软件,但可以无限期试用),也是HTML和散文先进的文本编辑器.Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的V

Cocos2d-x游戏开发之lua工程创建

操作系统:OS X 10.85 Cocos2d-x 版本: 2.2.1 使用Cocos2d-x 可以创建lua工程,已经使用cpp创建的工程也可以继承lua进行开发,但是lua并不支持mac工程(因为一些框架的问题). 支持的工程文件如下: 所有使用创建工程create.py language 为cpp的工程,后集成lua及其工具的时候,要注意这一点. 撒 现在进入cocos2d-x 目录之下,通过cd 进入文件目录 进入之后,如果忘记了命令,可以直接运行 create_project.py 如

Unity3D游戏开发之Lua与游戏的不解之缘终结篇:UniLua热更新完全解读

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 喜欢我的博客请记住我的名字:秦元培,我的博客地址是blog.csdn.net/qinyuanpei. 转载请注明出处,本文作者:

[Unity3D]Unity3D游戏开发之ACT游戏三连击效果实现综述

各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.在研究了Unity3D Mecanim动画系统的重定向特性后,今天我们继续来探索Mecanim动画系统更多的特性吧.今天博主想和大家分享的是ACT游戏中的三连击效果的实现,由于Unity3D目前存在Animation和Animator两种类型的动画组件,因此本文将分别讲这两种类型的动画组件的三连击效果的实现,其中Animation组件是Unity3.5以下版本所使用的动画组件,An