© 版权声明:本文为博主原创文章,转载请注明出处

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

java游戏开发基础Swing之JRadioButton的更多相关文章

  1. java游戏开发基础Swing之JCheckBox

    © 版权声明:本文为博主原创文章,转载请注明出处 1.复选框(JCheckBox) 使用复选框可以完成多项选择.Swing中的复选框与AWT中的复选框相比,优点是Swing复选框中可以添加图片 JCh ...

  2. java游戏开发杂谈 - 线程

    线程,让游戏拥有了动态变化的能力. java的图形界面,在启动的时候,就开始了一个线程. 这个线程负责处理:JFrame.JPanel等的绘制.事件处理. 它是由操作系统调用的,在程序启动时开启,程序 ...

  3. java游戏开发杂谈 - 实现游戏主菜单

    经常玩游戏的同学,大家都知道,游戏都会有个主菜单,里面有多个菜单选项:开始游戏.游戏设置.关于游戏.退出游戏等等,这个菜单是怎么实现的呢. 有一定桌面软件开发基础的同学可能会想到,用JButton组件 ...

  4. java游戏开发杂谈 - 画布和画笔

    在Eclipse里,编写如下两个类: package game2; import java.awt.Color; import java.awt.Graphics; import javax.swin ...

  5. 【读书笔记《Android游戏编程之从零开始》】14.游戏开发基础(Bitmap 位图的渲染与操作)

    Bitmap 是图形类,Android 系统支持的图片格式有 png.jpg.bmp 等. 对位图操作在游戏中是很重要的知识点,比如游戏中需要两张除了大小之外其他完全相同的图,那么如果会对位图进行缩放 ...

  6. java游戏开发杂谈 - 游戏物体

    现实生活中,有很多物体,每个物体的长相.行为都不同. 物体存在于不同的空间内,它只在这个空间内发生作用. 物体没用了,空间就把它剔除,不然既占地方,又需要花精力管理. 需要它的时候,就把它造出来,不需 ...

  7. java游戏开发杂谈 - 有限状态机

    在不同的阶段,游戏所运行的逻辑.所显示的界面,都是不同的. 以五子棋举例,游戏开始.游戏中.胜负已分,对应的界面和逻辑都不同. 在游戏中,又分为:自己下棋.对方下棋.游戏暂停.悔棋等多个状态. 再比如 ...

  8. java游戏开发杂谈 - 事件处理

    大家都知道,游戏需要跟玩家交互,需要接收玩家的鼠标.键盘发出的命令,比如在地图上点击一下,人物就自动寻路走过去:键盘上按下某个键,就弹出一个背包界面. 这些逻辑是怎么处理的呢? 大家先不用深究太详细的 ...

  9. java游戏开发杂谈 - 创建一个窗体

    package game1; import javax.swing.JFrame; /** * java游戏开发杂谈 * ---demo1:创建一个窗体 * * @author 台哥 * @date ...

随机推荐

  1. NetFlow流量采集与聚合的研究实现

    http://www.21ic.com/app/analog/200907/44851.htm

  2. HDU6380 2018 “百度之星”程序设计大赛 - 初赛(B) A-degree (无环图=树)

    原题地址 degree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Tot ...

  3. poj2104(划分树模板)

    poj2104 题意 给出一个序列,每次查询一个区间,要求告诉这个区间排序后的第k个数. 分析 划分树模板,O(mlogn). 建树.根据排序之后的数组,对于一个区间,找到中点的数,将整个区间分为左右 ...

  4. 线段树【 bzoj3132 】【p4145 】上帝造题的七分钟2 / 花神游历各国

    题目大意 给定一个区间 支持开方和查询区间值操作 (多组数据 分析 如果一个区间的最大值小于1,那就没有开方的必要了(具体不会证明,听大佬讲的 一个数经过多次开方就会变成1(可以用计算器试一下 因此我 ...

  5. 使用Windows Live Writer开始发布cnblogs日志的方法

    1.下载Windows Live Writer http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=8621 2.安装Window ...

  6. requestFeature() must be called before adding content

    错误:requestFeature() must be called before adding content 原因: Android去掉标题栏点菜单键程序崩溃 在安卓以前的版本中,我们会使用以下两 ...

  7. Ubuntu 16.04服务器版查看IP、网关、DNS(非DHCP)

    查看IP ifconfig em1 Link encap:Ethernet HWaddr F0:1F:AF:D6:17:DD inet addr:115.238.54.116 Bcast:115.23 ...

  8. Word中如何公式居中标号右对齐

    1.鼠标居中 2.插入一行三列表格 3.选中第一个表格,右键-表格属性-单元格-选项:然后回到单元格设置垂直居中,宽度为15%,同理第三个单元格,不过中间单元格也要设置,宽度为70%,这个word没有 ...

  9. java拦截器与过滤器打印请求url与参数

    HttpServletRequest httpServletRequest = (HttpServletRequest) request; HttpServletResponse httpServle ...

  10. ASIHTTPRequest框架使用总结系列之阿堂教程5(上传数据)

    在上篇文章中,阿堂和网友们分享了如何用ASIHTTPRequest框架下载数据的实例,本篇阿堂将数据介绍如何用ASIHTTPRequest框架上传数据的应用实例.       数据上传是通过ASIHT ...