Java Swing用户界面组件之选择组件简介

Java Swing组件之选择组件简介

    • 一、复选框组件(JCheckBox)
      • 常用构造方法
      • 常用方法
      • 常用监听器
      • 代码实例
    • 二、单选框组件(JRadioButton)
      • 常用构造方法
      • 常用方法
      • 常用监听器
      • 按钮组
      • 代码实例

对用户界面进行设计时,很多情况下都需要给用户以选项做出选择。因此常常会用到选择组件,其中包括:复选框组件(JCheckBox)、单选框组件(JRadioButton)等。本篇文章主要介绍了Java Swing组件复选框JCheckBox用法,结合具体实例形式分析了JCheckBox和JRadioButton的简单用法与相关操作。

一、复选框组件(JCheckBox)

官方JavaDocsApi: javax.swing.JCheckBox
JCheckBox(复选框)组件为用户提供直接选择的按钮,其值为选中或未选中。如果复选框有多个,则用户可以选中一个或者多个。

常用构造方法

JCheckBox();//创建一个没有文本、没有图标并且最初未被选定的复选框
JCheckBox(Action a);//创建一个复选框,其中从所提供的操作中获取属性
JCheckBox(Icon icon);//创建一个有图标,但未被选中的复选框
JCheckBox(Icon icon,boolean selected);//创建一个有图标复选框,并且制定是否被选中
JCheckBox(String text);//创建一个有文本,最初未被选中的复选框
JCheckBox(String text,boolean selected);//创建一个有文本的复选框,并且指定最初是否处于选定状态
JCheckBox(String text,Icon icon);//创建一个指定文本和图标、但未被选中的复选框
JCheckBox(String text,Icon icon,boolean selected);//创建一个指定文本和图标,并且制定是否被选中的复选框

常用方法

void setText(String text);//设置复选框的文本
void setFont(Font font);//设置复选框的字体
void setForeground(Color fg);//设置复选框的字体颜色

void setSelected(boolean b);//设定复选框状态
boolean isSelected();//返回复选框状态,true时为选中
void setEnabled(boolean enable);//设置复选框是否可用
void setIconTextGap(int iconTextGap);//设置图片和文本的间距

常用监听器

void addChangeListener(ChangeListener l);// 添加状态改变监听器

代码实例

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class example extends JFrame{
    int DEFAULT_WIDTH = 600;
    int DEFAULT_HEIGHT = 400;
    private JLabel label;
    private JCheckBox boldCheckbox;
    private JCheckBox italicCheckbox;
    private static final int FONTSIZE = 18;
    public example(){
        setTitle("CheckBoxTest");
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
        //添加label
        label = new JLabel("生而自由,爱而无畏");
        label.setFont(new Font("Serif",Font.PLAIN, FONTSIZE));
        add(label, BorderLayout.CENTER);
        //构造一个监听器,响应checkBox事件
        ActionListener actionListener = new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                int mode = 0;
                if(boldCheckbox.isSelected()) mode += Font.BOLD;
                if(italicCheckbox.isSelected()) mode += Font.ITALIC;
                label.setFont(new Font("Serif", mode, FONTSIZE));
            }
        };
        //添加buttonPanel,它包含2个checkBox
        JPanel buttonPanel = new JPanel();
        add(buttonPanel, BorderLayout.SOUTH);
        //为buttonPanel添加2个checkBox
        boldCheckbox = new JCheckBox("bold");
        boldCheckbox.addActionListener(actionListener);
        buttonPanel.add(boldCheckbox);
        italicCheckbox = new JCheckBox("italic");
        italicCheckbox.addActionListener(actionListener);
        buttonPanel.add(italicCheckbox);
    }
    
    public static void main(String[] args) {
        example frame = new example(); //创建窗体并指定标题
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //关闭窗体后退出程序
        frame.setLocationRelativeTo(null);//设置窗体位置在屏幕中央
        frame.setVisible(true); //显示窗体
    }
}

可单击鼠标对其进行选中操作,可同时选中多个复选框,再次点击可取消选中。运行截图如下:
Java Swing用户界面组件之选择组件简介_第1张图片
Java Swing用户界面组件之选择组件简介_第2张图片

二、单选框组件(JRadioButton)

官方JavaDocsApi: javax.swing.JRadioButton
JRadioButton(单选框)组件为用户提供直接选择的按钮,其值为选中或未选中。与复选框不同的是,如果在一组中有多个单选框,则用户只能同时选中一个。当一个单选按钮被选中时,先前被选中的单选按钮就会自动取消选中。要想实现多个JRadioButton具有互斥性,则需要使用ButtonGroup类,且将需要互斥的单选按钮通过add()方法加人到同一个ButtonrGroup按钮组。ButtonGroup 是个不可见的组件,不需要将其增加到容器中显示。

常用构造方法

JRadioButton();//创建一个没有文本、没有图标并且最初未被选定的单选框
JRadioButton(String text);//创建一个带文本、最初未被选定的单选框
JRadioButton(String text, boolean selected);//创建一个带文本的单选框、并指定其最初是否处于选定状态
JRadioButton(String text, Icon icon);//创建带有指定文本和图标的、最初未被选定的单选框
JRadioButton(String text, Icon icon, boolean selected);//创建带有指定文本和图标的单选框,并指定其最初是否处于选定状态

常用方法

void setText(String text);// 设置单选框的文本
void setFont(Font font);// 设置单选框的字体
void setForeground(Color fg);// 设置单选框的字体颜色

void setSelected(boolean b);// 设置单选按钮是否选中状态
boolean isSelected();//判断单选按钮是否选中
void setEnabled(boolean enable);//设置单选按钮是否可用
void setIcon(Icon defaultIcon);// 设置单选按钮在 默认时显示的图片
void setPressedIcon(Icon pressedIcon);// 设置单选按钮在被选中时显示的图片
void setDisabledIcon(Icon disabledIcon);// 设置单选按钮在不可用时显示的图片
void setIconTextGap(int iconTextGap);// 设置图片和文本的间距

常用监听器

void addChangeListener(ChangeListener l);//添加状态改变监听器

按钮组

当有多个单选按钮时,一般只允许一个单选按钮选中,因此需要对同一类型的单选按钮进行分组。

ButtonGroup btnGroup = new ButtonGroup();// 创建一个按钮组
// 添加单选按钮到按钮组
btnGroup.add(radioBtn01);
btnGroup.add(radioBtn02);

代码实例

import javax.swing.*;
import java.awt.*;

public class example {

    public static void main(String[] args) throws AWTException {
        JFrame jf = new JFrame("example");
        jf.setSize(600, 400);
        jf.setLocationRelativeTo(null);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JPanel panel = new JPanel();

        // 创建两个单选按钮
        JRadioButton radioBtn01 = new JRadioButton("生而自由");
        JRadioButton radioBtn02 = new JRadioButton("爱而无畏");

        // 创建按钮组,把两个单选按钮添加到该组
        ButtonGroup btnGroup = new ButtonGroup();
        btnGroup.add(radioBtn01);
        btnGroup.add(radioBtn02);

        // 设置第一个单选按钮选中
        radioBtn01.setSelected(true);

        panel.add(radioBtn01);
        panel.add(radioBtn02);

        jf.setContentPane(panel);
        jf.setVisible(true);
    }
}

运行截图如下:
Java Swing用户界面组件之选择组件简介_第3张图片

你可能感兴趣的:(Java)