按钮组件

《零基础学Java》


  • 按钮组件

按钮在Swing中是比较常用的组件,用于触发特定动作。Swing中提供多种按钮组件,如按钮、单选按钮、复选框等(这些按钮都是从AbstractButton类中继承而来的)。

  • JButton按钮组件

    Swing中按钮由JButton 对象表示。

    JButton按钮组件 常用的构造方法

    构造方法 介绍 public JButton(); 创建一个没有文本和图标的按钮。 public JButton(text); 创建一个带文本的按钮。 public JButton(icon); 创建一个带图标的文本。 public JButton(text , icon); 创建一个带文本、图标的按钮。

    Button按钮组件 实例

      import javax.swing.*;
      import java.awt.*;
      import java.awt.event.ActionEvent;
      
      public class Demo12 extends JFrame {
          public Demo12(){
              setBounds(100,100,500,300);
              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.cyan);//设置按钮的颜色
      
              btn[2].setText("无边框");
              btn[2].setBorderPainted(false);//设置按钮为无边框
      
              btn[3].setText("有边框");
              btn[3].setBorder(BorderFactory.createLineBorder(Color.red));//设置按钮为红色的线边框
      
              Icon icon = new ImageIcon("src/1.PNG");
              btn[4].setIcon(icon);//设置按钮为图片
              btn[4].setToolTipText("图片按钮");//设置按钮的悬停提示
      
              btn[5].setText("可点击");
              btn[5].addActionListener(new AbstractAction() {//添加按钮事件监听
                  @Override
                  public void actionPerformed(ActionEvent e) {//监听触发的方法
                      JOptionPane.showMessageDialog(Demo12.this,"点击按钮");//弹出一个小对话框
                  }
              });
      
      
              setVisible(true);
          }
      
          public static void main(String[] args) {
              new Demo12();
          }
      }
      
    

    Button按钮组件 实例输出结果:

  • JRadioButton 单选按钮组件

    默认情况下,单选按钮(JRadioButton)显示个圆形图标,并且通常在该图标旁显示说明性文字。在应用程序中,一般将多个单选按钮放置在按钮组中,使这些单选按钮实现某种功能,当用户选中某个单选按钮后,按钮组中其他按钮将自动取消。

    单选按钮

    常用的构造方法

    构造方法 说明 public JRadioButton(); 创建一个未选中、没有文本的单选按钮 public JRadioButton(icon); 创建一个有指定图像、未选中、没有文本的单选按钮 public JRadioButton(icon , selected); 创建一个有指定图像、有选中状态、没有文本的单选按钮 public JRadioButton(text); 创建一个有文本、未选中的单选按钮 public JRadioButton(text , icon); 创建一个有文本、有指定图像、未选中的单选按钮 public JRadioButton(text , icon , selected); 创建一个有文本、有指定图像、有选中状态的单选按钮

    按钮组

    在Swing中存在一个ButtonGroup按钮组类,该类可以将多个单选按钮绑定在一起,实现“选项有很多,但只能选中一个的效果。实例化ButtonGroup对象之后可以使用add()方法将多个单选按钮添加到按钮组中。

    JRadioButton 单选按钮组件 实例

      import javax.swing.*;
      import java.awt.*;
      import java.awt.event.ActionEvent;
      
      public class Demo13 extends JFrame {
          public Demo13(){
              setBounds(100,100,180,110);
              setDefaultCloseOperation(EXIT_ON_CLOSE);
      
              Container c = getContentPane();
              c.setLayout(new FlowLayout());
      
              JRadioButton jr1 = new JRadioButton("向左");//创建单选按钮组件
              JRadioButton jr2 = new JRadioButton("向右");
              c.add(jr1);
              c.add(jr2);
      
              ButtonGroup group = new ButtonGroup();//创建按钮组
              group.add(jr1);
              group.add(jr2);
      
              jr1.setSelected(true);//设置默认选中
      
              JButton jbn = new JButton("打印");
              jbn.addActionListener(new AbstractAction() {
                  @Override
                  public void actionPerformed(ActionEvent e) {
                      System.out.println(jr1.getText()+"按钮选中状态"+jr1.isSelected());//在控制台输出按钮的选中状态
                      System.out.println(jr2.getText()+"按钮选中状态"+jr2.isSelected());
                      group.clearSelection();//清空按钮组的选项
                  }
              });
              c.add(jbn);
      
              setVisible(true);
          }
      
          public static void main(String[] args) {
              new Demo13();
          }
      }
      
      
    

    JRadioButton 单选按钮组件 实例输出结果:

  • JCheckBox复选框组件

    复选框(JCheckBox)在Swing组件中的使用非常广泛,它具有一个方块图标,外加一段描述性文字。与单选按钮唯一不同的是,复选框可以进行多选操作,每一个复选框都提供 “选中” 与 “不选中” 两种状态。复选框用JCheckBox类的对象表示。

    JCheckBox复选框组件 常用的构造方法

    构造方法 说明 public JCheckBox(); 构造一个无文本、无图标、未被选中的复选框 public JCheckBox(icon , checked); 构造有个有图标、被选中的复选框 public JCheckBox(text , checked); 构造有个有文本、被选中的复选框

    JCheckBox复选框组件 实例

      import javax.swing.*;
      import java.awt.*;
      import java.awt.event.ActionEvent;
      
      public class Demo14 extends JFrame {
          public Demo14(){
              setBounds(100,100,190,120);
              setDefaultCloseOperation(EXIT_ON_CLOSE);
      
              Container c = getContentPane();
              c.setLayout(new FlowLayout());
      
              JCheckBox c1 = new JCheckBox("1");//创建复选框组件
              JCheckBox c2 = new JCheckBox("2");
              JCheckBox c3 = new JCheckBox("3");
      
              c.add(c1);
              c.add(c2);
              c.add(c3);
      
              c1.setSelected(true);//设置默认选中状态
      
              JButton btn = new JButton("打印");
              btn.addActionListener(new AbstractAction() {
                  @Override
                  public void actionPerformed(ActionEvent e) {
                      System.out.println(c1.getText()+"复选框选中状态:"+c1.isSelected());//获取复选框选中的状态
                      System.out.println(c2.getText()+"复选框选中状态:"+c2.isSelected());
                      System.out.println(c3.getText()+"复选框选中状态:"+c3.isSelected());
                  }
              });
      
              c.add(btn);
      
              setVisible(true);
          }
      
          public static void main(String[] args) {
              new Demo14();
          }
      }
      
    
    JCheckBox复选框组件 实例输出结果: