zoukankan      html  css  js  c++  java
  • 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游戏变成原理与实践教程》

  • 相关阅读:
    springboot-项目属性配置
    网络编程
    HttpServlet---getLastModified与缓存
    TCP的三次握手和四次挥手
    数据库事务隔离级别-- 脏读、幻读、不可重复读
    js 数组,字符串,json互相转换
    表格单元格td设置宽度无效的解决办法
    判断IE版本的HTML语句详解,如:<!--[if IE 9]> 仅IE9可识别 <![endif]-->
    IE主页被篡改为360导航终极处理办法
    前端常见问题
  • 原文地址:https://www.cnblogs.com/jinjiyese153/p/7132020.html
Copyright © 2011-2022 走看看