Java详解Swing中的几种常用按钮的使用

作者:LNORA 时间:2023-12-04 21:44:30 

Swing中的常用按钮

在Swing中,常见的按钮组件有JButton,JCheckBox,JRadioButton等,它们都是抽象类AbstractButton类的直接或间接子类。在AbstractButton类中提供了按钮组件通用的一些方法。

AbstractButton的常用方法

方法描述功能
lcon getlcon()和void setlcon(lcon icon)设置或者获取按钮的图标
String getText()和void setText(String text)设置或者获取按钮的文本
void setEnable(boolean b)启用或者禁用按钮
setSelected(boolean b)设置按钮的状态为是否选中
boolean isSelected()返回按钮的状态

JRadionButton(单选按钮)

单选按钮只能选中一个,当按下一个按钮的时候,先前按下的按钮就会弹起,对于单选按钮来说,当一个按钮被选中时,先前选中的按钮就会自动取消选中。

但是单选按钮本身不具备这种功能,要想实现单选按钮之间的互斥,需要用java.swing.ButtonGroup类,它是一个不可见的组件,不需要添加在容器中显示,只在逻辑上表示一个单选按钮,将多个单选按钮添加到同一个单选按钮组对象中,就能实现按钮的单选功能。

单选按钮的构造方法

方法描述功能说明
JRadioButton()创建一个没有文本信息,始终状态未被选中的单选框
JRadioButton(String ,text)创建一个带有文本信息,初始状态未被选定的单选框
JRadioButton(String text,boolean selected)创建一个具有文本信息,并指定初始状态(选中/未选中)的单选框
package Swing;

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

public class DanXuan extends JFrame {
    //单选按钮对象
    private ButtonGroup group;
    //将按钮放在JPanel面板上
    private JPanel panel;
    //将JPanel作为调色板
    private JPanel pallet;
    public DanXuan(){
        pallet =new JPanel();
        this.add(pallet,BorderLayout.CENTER);
        panel=new JPanel();
        group=new ButtonGroup();
        addJRadioButton("灰");
        addJRadioButton("粉");
        addJRadioButton("黄");
        this.add(panel,BorderLayout.SOUTH);
        this.setSize(300,300);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    }
    //创建一个带有文本信息的单选按钮,将按钮添加到panel面板和ButtonGroup按钮组中,并添加一个 *
    private void addJRadioButton(final String text){
        JRadioButton radioButton=new JRadioButton(text);
        group.add(radioButton);
        panel.add(radioButton);
        radioButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                Color color=null;
                if("灰".equals(text)){
                    color=Color.GRAY;
                }else if("粉".equals(text)){
                    color=Color.PINK;
                }else if("黄".equals(text)){
                    color=Color.YELLOW;
                }else {
                    color=Color.WHITE;
                }
                pallet.setBackground(color);
            }
        });
    }
    public static void main(String[] args) {
        new DanXUan();
    }
}

Java详解Swing中的几种常用按钮的使用

 在一个面板上放置三个按钮,当单击这三个不同的按钮时,pallet面板的背景就会相应的变成灰色,粉色,黄色。先为按钮设置一个事件 * ,用来响应用户单击单选按钮的操作,在actionPerformed()方法中定义一个Color类型的变量color,并根据方法传入的text值进行判断,根据color的值设置pallet的背景颜 

复选框(JCheckBox)

有选中和未选中两种状态,如果用户想要接收的输入只有是和非,则可以通过复选框来切换状态,如果复选框有多个,则用户可以选择其中一个或则多个。

复选框的构造方法

方法描述功能叙述
JCheckBox()创建一个没有文本信息,初始状态未被选中的复选框
JCheckBox(String text)创建一个带有文本信息,初始状态未被选中的复选框
JCheckBox(String text,boolean selected)创建一个带有文本信息,并指定初始状态的复选框
package Swing;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class  DuoXuan extends JFrame {
    private  JCheckBox italic;
    private JCheckBox bold;
    private JLabel label;
    public DuoXuan (){
        label=new JLabel("我的世界",JLabel.CENTER);
        label.setFont(new Font("宋体",Font.PLAIN,20));
         Component lable ;
        Label p1 = new Label();
        this.add(p1);
        JPanel panel=new JPanel();
        italic=new JCheckBox("ITALIC");
        bold=new JCheckBox("BOLD");
        ActionListener listener=new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int mode = 0;
                if(bold.isSelected())
                    mode+=Font.BOLD;
                if(italic.isSelected())
                    mode+=Font.ITALIC;
                label.setFont(new Font("宋体",mode,20));
            }
        };
        italic.addActionListener(listener);
        bold.addActionListener(listener);
        panel.add(italic);
        panel.add(bold);
        this.add(panel,BorderLayout.SOUTH);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setSize(300,300);
        this.setVisible(true);
    }
    public static void main(String[] args) {
        new DuoXuan ();
    }
}

组合框(JComboBox)

JComboBox组件被称为组合框或者下拉列表框,它将所有选择折叠收藏在一起,默认显示的是第一个添加的选项,当用户单击组合框时,会出现下拉式的选择列表,用户可以从中选择其中一项并显示。分为可编辑和不可编辑两种形式,对于不可编辑的组合框,用户只能在现有的选项列表中进行选择,对于可编辑的组合框,用户既可以在现有的选项中进行选择,还可以自己输入新的内容,自己输入的内容只能作为当前项显示,并不会添加到组合框的选项列表中。

组合框的构造方法

方法描述功能叙述
JComBox()创建一个没有可选项的组合框
JComboBox(Object[]items)创建一个组合框,将Object数组中的元素作为组合框的下拉列表选项
JComboBox(Vector items)创建一个组合框,将Vector集合中的元素作为组合框的下拉列表选项

下拉列表框的常用方法

 void addItem(Object anObject)   //将指定的对象作为选项添加到下拉列表框中
 void insertItemAt(Object anObject,int index)    //在下拉列表框中的指定索引处插入项
 void removeltem(0bject anObject)    //在下拉列表框中删除指定的对象项
 void removeItemAt(int anlndex)  //在下拉列表框中删除指定位置的对象项
 void removeAllItems()   //从下拉列表框中删除所有项
 int getItemCount()  //返回下拉列表框中的项数
 Object getItemAt(int index) //获取指定索引的列表项,索引从 0 开始
 int getSelectedIndex()  //获取当前选择的索引
 Object getSelectedltem()    //获取当前选择的项

package Swing;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class XiaLa extends JFrame {
    //创建一个组合框
    private JComboBox comboBox;
    //创建一个文本框
    private JTextField field;
    public  XiaLa(){
        //创建一个面板
        JPanel panel=new JPanel();
        comboBox=new JComboBox();
        //为组合框添加选项
        comboBox.addItem("请选择城市");
        comboBox.addItem("驻马店");
        comboBox.addItem("郑州");
        comboBox.addItem("开封");
        comboBox.addItem("漯河");
        comboBox.addItem("南阳");
        comboBox.addItem("洛阳");
        comboBox.addItem("济源");
        comboBox.addItem("商丘");
        comboBox.addItem("新乡");
        comboBox.addItem("周口");
        comboBox.addItem("信阳");
        comboBox.addItem("三门峡");
        comboBox.addItem("濮阳");
        comboBox.addItem("许昌");
        comboBox.addItem("安阳");
        comboBox.addItem("鹤壁");
        comboBox.addItem("焦作");
        comboBox.addItem("平顶山");
        //为组合框设置事件 *
        comboBox.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String item =(String) comboBox.getSelectedItem();
                if("请选择城市".equals(item)){
                    field.setText("");

                }else{
                    field.setText("你选择的城市是:"+item);
                }
            }
        });
        field=new JTextField(20);
        panel.add(comboBox);
        panel.add(field);
        //在内容面板中添加JPanel面板
        this.add(panel, BorderLayout.NORTH);
        this.setSize(350,100);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    }
    public static void main(String[] args) {
        new  XiaLa();
    }
}

首先为组合框添加一个事件 * ,然后再actionPerformed()方法中,通过调用comboBox的getSelectedItem()方法获得用户所选的item,如果为城市名调用filed的setText(item)方法将城市名显示在文本框中;如果item为"请选择城市"则将文本框的内容清空。

Java详解Swing中的几种常用按钮的使用

小结

来源:https://blog.csdn.net/m0_55749088/article/details/124284190

标签:Java,Swing,按钮
0
投稿

猜你喜欢

  • Java实现特定范围的完数输出算法示例

    2023-11-29 00:43:45
  • android中处理各种触摸事件的方法浅谈

    2021-06-25 00:51:57
  • Android Location服务之LocationManager案例详解

    2022-02-03 00:01:11
  • Java中逆序遍历List集合的实现

    2022-04-03 23:48:13
  • Java JVM字节码指令集总结整理与介绍

    2021-09-18 17:10:20
  • C++临时性对象的生命周期详细解析

    2023-01-22 04:26:01
  • Android中NestedScrolling滑动机制详解

    2022-09-16 22:32:13
  • Java 8实现图片BASE64编解码

    2022-08-22 05:35:05
  • SpringBoot万字爆肝高级配置

    2022-09-17 06:34:08
  • 使用Gradle做Java代码质量检查的方法示例

    2021-08-10 00:45:06
  • Java多线程同步工具类CyclicBarrier的使用

    2021-08-26 05:29:53
  • C#使用iTextSharp从PDF文档获取内容的方法

    2021-06-12 04:01:11
  • Java实现打印二叉树所有路径的方法

    2021-07-13 15:52:57
  • Flutter加载图片流程MultiFrameImageStreamCompleter解析

    2023-07-19 02:45:55
  • SpringBoot遇到的坑@Qualifier报红的解决

    2022-06-03 07:49:55
  • 解决RestTemplate反序列化嵌套对象的问题

    2022-06-26 20:41:24
  • C#词法分析器之正则表达式的使用

    2023-06-21 13:10:58
  • 分析Android多主题颜色的相关问题

    2023-01-08 09:55:58
  • Android如何优雅的处理重复点击

    2022-08-11 20:22:35
  • C#基础之Lambda表达式用法实例教程

    2021-12-06 14:07:56
  • asp之家 软件编程 m.aspxhome.com