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

目录
  • Swing中的常用按钮
    • AbstractButton的常用方法
    • JRadionButton(单选按钮)
      • 单选按钮的构造方法
    • 复选框(JCheckBox)
      • 复选框的构造方法
    • 组合框(JComboBox)
      • 组合框的构造方法
    • 下拉列表框的常用方法
  • 小结

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();
     }
 }

在一个面板上放置三个按钮,当单击这三个不同的按钮时,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为"请选择城市"则将文本框的内容清空。

小结

以上就是我对于Swing中几种常见按钮的理解,以便于我们之后在不同开发中根据不同的情况设置不同的按钮,提高用户的体验感。

到此这篇关于Java详解Swing中的几种常用按钮的使用的文章就介绍到这了,更多相关Java Swing按钮内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java Swing JRadioButton单选按钮具体使用

    1. 概述 官方JavaDocsApi:javax.swing.JRadioButton JRadioButton,单选按钮. JButton 常用构造方法: // 无文本,未选中 JRadioButton() // 有文本,未选中 JRadioButton(String text) // 有文本,并指定是否选中 JRadioButton(String text, boolean selected) JRadioButton 常用方法: // 设置单选按钮的 文本.字体 和 字体颜色 void

  • Java Swing JToggleButton开关按钮的实现

    1. 概述 官方JavaDocsApi: javax.swing.JToggleButton JToggleButton,开关按钮.JToggleButton 是 JRadioButton, JCheckBox 的父类,主要实现一个按钮的两种状态(选中 和 未选中)来实现开关切换的效果. JToggleButton 常用构造方法: // 无文本,默认未选中 JToggleButton() // 有文本,默认未选中 JToggleButton(String text) // 有文本,并指定是否选中

  • Java Swing JButton按钮的实现示例

    1. 概述 官方JavaDocsApi: javax.swing.JButton JButton,按钮. JButton 常用构造方法: // 创建不带有设置文本或图标的按钮 JButton() // 创建一个带文本的按钮 JButton(String text) // 创建一个带图标的按钮 JButton(Icon icon) JButton 常用方法: // 设置按钮的 文本.字体 和 字体颜色 void setText(String text) void setFont(Font font

  • Java编程实现swing圆形按钮实例代码

    Swing是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT更好的屏幕显示元素.它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT.它们是JFC的一部分.它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们.这意味着你可以在任意平台上使用JAVA支持的任意面板.轻量级组件的缺点则

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

    目录 Swing中的常用按钮 AbstractButton的常用方法 JRadionButton(单选按钮) 单选按钮的构造方法 复选框(JCheckBox) 复选框的构造方法 组合框(JComboBox) 组合框的构造方法 下拉列表框的常用方法 小结 Swing中的常用按钮 在Swing中,常见的按钮组件有JButton,JCheckBox,JRadioButton等,它们都是抽象类AbstractButton类的直接或间接子类.在AbstractButton类中提供了按钮组件通用的一些方法.

  • 详解js中的几种常用设计模式

    工厂模式 function createPerson(name, age){ var o = new Object(); // 创建一个对象 o.name = name; o.age = age; o.sayName = function(){ console.log(this.name) } return o; // 返回这个对象 } var person1 = createPerson('ccc', 18) var person2 = createPerson('www', 18) 工厂函数

  • Java详解实现多线程的四种方式总结

    目录 前言 一.四种方式实现多线程 1.继承Thread类创建线程 2.实现Runnable接口创建线程 3.实现Callable接口 4.实现有返回结果的线程 二.多线程相关知识 1.Runnable 和 Callable 的区别 2.如何启动一个新线程.调用 start 和 run 方法的区别 3.线程相关的基本方法 4.wait()和 sleep()的区别 5.多线程原理 前言 Java多线程实现方式主要有四种: ① 继承Thread类.实现Runnable接口 ② 实现Callable接

  • 详解JavaScript中的4种类型识别方法

    具体内容如下: 1.typeof [输出]首字母小写的字符串形式 [功能] [a]可以识别标准类型(将Null识别为object) [b]不能识别具体的对象类型(Function除外) [实例] console.log(typeof "jerry");//"string" console.log(typeof 12);//"number" console.log(typeof true);//"boolean" console

  • 详解python中的三种命令行模块(sys.argv,argparse,click)

    Python作为一门脚本语言,经常作为脚本接受命令行传入参数,Python接受命令行参数大概有三种方式.因为在日常工作场景会经常使用到,这里对这几种方式进行总结. 命令行参数模块 这里命令行参数模块平时工作中用到最多就是这三种模块:sys.argv,argparse,click.sys.argv和argparse都是内置模块,click则是第三方模块. sys.argv模块(内置模块) 先看一个简单的示例: #!/usr/bin/python import sys def hello(name,

  • 详解C++ 中的三种继承方式

    public 方式继承 基类成员对派生类的可见性对派生类来说,基类的公有成员和保护成员可见,基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态;基类的私有成员不可见,基类的私有成员仍然是私有的,派生类不可访问基类中的私有成员. 基类成员对派生类对象的可见性对派生类对象来说,基类的公有成员是可见的,其他成员是不可见的. 所以,在公有继承时,派生类的对象可以访问基类中的公有成员,派生类的成员函数可以访问基类中的公有成员和保护成员. 简单来说,派生类能访问基类的public, prote

  • 详解JavaScript中哪一种循环最快呢

    了解哪一种 for 循环或迭代器适合我们的需求,防止我们犯下一些影响应用性能的低级错误. JavaScript 是 Web 开发领域的"常青树".无论是 JavaScript 框架(如 Node.js.React.Angular.Vue 等),还是原生 JavaScript,都拥有非常庞大的粉丝基础.我们来谈谈现代 JavaScript 吧.循环一直是大多数编程语言的重要组成部分,而现代 JavaScript 为我们提供了许多迭代或循环值的方法. 但问题在于,我们是否真的知道哪种循环或

  • 详解JavaScript如何实现四种常用排序

    目录 一.插入排序 直接插入排序 二.交换排序 (1)冒泡排序 (2)快速排序 三.选择排序 (1)简单选择排序 (2)堆排序 四.归并排序 一.插入排序 插入排序有直接插入排序,折半插入排序,希尔排序,这里只实现常用的直接插入排序 直接插入排序 将左侧序列看成一个有序序列,每次将一个数字插入该有序序列. 插入时,从有序序列最右侧开始比较,若比较的数较大,后移一位. function insertSort(array) { //第一个默认已经排好 for (let i = 1; i < arra

  • 详解Python中的四种队列

    队列是一种只允许在一端进行插入操作,而在另一端进行删除操作的线性表. 在Python文档中搜索队列(queue)会发现,Python标准库中包含了四种队列,分别是queue.Queue / asyncio.Queue / multiprocessing.Queue / collections.deque. collections.deque deque是双端队列(double-ended queue)的缩写,由于两端都能编辑,deque既可以用来实现栈(stack)也可以用来实现队列(queue

  • 详解SpringMVC中的四种跳转方式、视图解析器问题

    目录 一.视图解析器: 1.springmvc核心配置文件,添加视图解析器: 2.视图解析器的使用: 3.视图解析器类InternalResourceViewResolver源码解析: 二.SpringMVC四种跳转方式: 1.跳转方式案例: 一.视图解析器: 1.springmvc核心配置文件,添加视图解析器: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www

随机推荐