Swing程序设计(8)提交按钮,单选按钮

本文详细介绍了JavaSwing中JButton的用法,包括不可用按钮、颜色设置、边框显示、图标添加和事件监听。同时介绍了如何使用JRadioButton创建单选按钮,实现单选功能并处理用户选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录


前言

        Java中Swing程序中,最常用的无法就是JButton提交按钮组件了,按钮组件用于触发特定动作。Swing中提供着提交按钮、复选框、单选按钮等,这些按钮都是源于Swing包中的类。


一、提交按钮

        Swing程序中提交按钮(JButton)由JButton对象表示,其构造方法主要有以下几种形式:

public JButton();

public JButton(String text);

public JButton(Icon icon);

public JButton(String text,Icon icon);

         关于JButton的简单六种用法:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
//导入swing的包

public class LabelDemo extends JFrame{
//继承JFrame窗体类

    public LabelDemo(){
        //创建构造方法,搭建窗体

        setBounds(100,100,100,100);
        //设置窗体大小,生成位置

        setDefaultCloseOperation(EXIT_ON_CLOSE);
        //设置关闭方式

        Container c = getContentPane();
        //获取容器

        c.setLayout(new GridLayout(3,2,5,5));

        JButton btn[] = new JButton[6];
        for(int i=0;i<btn.length;i++){
            btn[i] = new JButton();
            c.add(btn[i]);
        }
        //添加了六个按钮组件

        //第一个按钮
        //设置为不可用
        btn[0].setText("不可用");
        btn[0].setEnabled(false);

        //第二个按钮
        //设置按钮颜色
        btn[1].setText("设置颜色");
        btn[1].setBackground(Color.BLUE);

        //第三个按钮
        //不显示边框
        btn[2].setText("不显示边框");
        btn[2].setBorderPainted(false);

        //第四个按钮
        //设置线边框
        btn[3].setText("有边线框");
        btn[3].setBorder(BorderFactory.createLineBorder(Color.RED));

        //第五个按钮
        //按钮添加图片
        Icon icon = new ImageIcon("java.src\\boy.png");
        btn[4].setIcon(icon);
        btn[4].setToolTipText("小男孩"); //悬停按钮上时提醒

        //第六个按钮
        //添加事件监听事件  
        btn[5].setText("可点击");
        btn[5].addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e){
                    JOptionPane.showMessageDialog(LabelDemo.this,"点击按钮");
                }
        });

        setVisible(true);
        //窗体可见
    }
    
    public static void main(String[] args) {
        new LabelDemo();
    }
}

        1.按钮不可用 

        btn[0].setText("不可用");
        btn[0].setEnabled(false);

        2.设置按钮背景颜色 

        btn[1].setText("设置颜色");
        btn[1].setBackground(Color.BLUE);

        3.设置按钮线框显示

        btn[2].setText("不显示边框");
        btn[2].setBorderPainted(false);

      

        btn[3].setText("有边线框");
        btn[3].setBorder(BorderFactory.createLineBorder(Color.RED));

(浅显的红色边框) 

        4.按钮显示图标

        Icon icon = new ImageIcon("java.src\\boy.png");
        btn[4].setIcon(icon);
        btn[4].setToolTipText("小男孩"); //悬停按钮上时提醒

        5.为按钮添加监听事件

        btn[5].setText("可点击");
        btn[5].addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e){
                    JOptionPane.showMessageDialog(LabelDemo.this,"点击按钮");
                }
        });

二、单选按钮

        在默认情况下,单选按钮(JRadioButton)显示为一个圆形图标,并且通常在该图标旁放置一些说明性文字。可以使用JRadioButton类中的构造方法创建单选按钮对象。JRadioButton类的常用构造方法主要有以下几种形式:

public JRadioButton();

public JRadioButton(Icon icon);

public JRadioButton(Icon icon,boolean selected);

public JRadioButton(String text);

public JRadioButton(String text,Icon icon);

public JRadioButton(String text,Icon icon,boolean selected);

        源代码:

        在项目中创建一个LabelDemo类,该类继承JFrame类,成为窗体组件,创建两个单选按钮,“向左走”和“向右走”,实现两个按钮两选一,同时有一个按钮能反馈出用户的选择,之后保护隐私,清除用户选择:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
//导入swing的包

public class LabelDemo extends JFrame{
//继承JFrame窗体类

    public LabelDemo(){
        //创建构造方法,搭建窗体

        setBounds(100,100,1000,1000);
        //设置窗体大小,生成位置

        setDefaultCloseOperation(EXIT_ON_CLOSE);
        //设置关闭方式

        Container c = getContentPane();
        //获取容器

        c.setLayout(new FlowLayout());
        
        JRadioButton left = new JRadioButton("向左走");
        JRadioButton right = new JRadioButton("向右走");
        c.add(left);
        c.add(right);
        //向容器中添加了两个单选按钮

        ButtonGroup group = new ButtonGroup();
        group.add(left);
        group.add(right);
        //ButtonGroup类实现了单选按钮,多个按钮只能选一个,调用add()

        left.setSelected(true);
        //setSelected() 默认选中某个单选按钮

        JButton btn = new JButton("打印");
        //创建了一个按钮用于反馈单选按钮结果

        //给该按钮添加 动作监听事件
        btn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.out.println(left.getText()+"按钮选中状态"+left.isSelected());
                System.out.println(right.getText()+"按钮选中状态"+right.isSelected());
                //在控制台中输出结果
                
                group.clearSelection();
                //按钮组清空选项
            }
        });


        c.add(btn);
        setVisible(true);
        //窗体可见
    }
    
    public static void main(String[] args) {
        new LabelDemo();
    }
}

        输出结果:

 

 

         注释:

创建两个单选按钮

        JRadioButton left = new JRadioButton("向左走");
        JRadioButton right = new JRadioButton("向右走");

实现两个按钮二选一

        ButtonGroup group = new ButtonGroup();
        group.add(left);
        group.add(right);

控制台输出用户选择(按钮添加动作监听)

         JButton btn = new JButton("打印");
        //创建了一个按钮用于反馈单选按钮结果

        //给该按钮添加 动作监听事件
        btn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.out.println(left.getText()+"按钮选中状态"+left.isSelected());
                System.out.println(right.getText()+"按钮选中状态"+right.isSelected());
                //在控制台中输出结果
                
                group.clearSelection();
                //按钮组清空选项
            }
        });

清除用户选择,保护隐私

           group.clearSelection();


总结

        以上就是今天要写的内容,本文仅简单介绍了提交按钮和单选按钮的使用,这两种按钮被宽泛用于各种UI界面中,是基础中的基础,适合我们Java初学者了解,如果有补充或者困惑的地方,欢迎在评论区中留言,我会积极解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵果森森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值