Hướng dẫn sử dụng JToggleButton trong Java Swing

JToogleButton thật chất là một Button với 2 trạng thái chọn và bỏ chọn, khi chúng ta nhấp vào một JToggleButton nó sẽ luân chuyển trạng thái qua lại giữa chọn và bỏ chọn.

Thông thường chúng ta sử dụng JToggleButton để cho phép người dùng chọn hay không chọn các chức năng mà ứng dụng cho phép.

Khởi tạo JToggleButton

Chúng ta có một số constructor sau để khởi tạo JToggleButton như sau:

  • JToggleButton() – Khởi tạo JToggleButton rỗng không chứa Label, Image. 
  • JToggleButton(String) – Khởi tạo JToggleButton với Label được chỉ định.
  • JToggleButton(String, Boolean) – Khởi tạo JToggleButton với Label và giá trị Boolean chỉ định được chọn hay bỏ chọn.

Xử lý sự kiện trong JToggleButton

Trong JToggleButton có một số sự kiện như sau:

Action Listener

Đây là sự kiện lắng nghe và kích hoạt mỗi khi người dùng thao tác trên JToggleButton. Ví dụ sau sẽ tạo ra một JToggleButton và xử lý mỗi khi người dùng nhấp vào nó thì sẽ xuất ra tình trạng hiện tại là được chọn hay không được chọn ra màn hình console.

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractButton;
import javax.swing.JFrame;
import javax.swing.JToggleButton;

public class Main {
    public static void main(String args[]) {
        JFrame frame = new JFrame("Selecting Toggle");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JToggleButton toggleButton = new JToggleButton("Toggle Button");
        // Define ActionListener
        ActionListener actionListener = new ActionListener() {
            public void actionPerformed(ActionEvent actionEvent) {
                AbstractButton abstractButton = (AbstractButton) actionEvent.getSource();
                boolean selected = abstractButton.getModel().isSelected();
                System.out.println("Action - selected=" + selected + "\n");
            }
        };
        // Attach Listeners
        toggleButton.addActionListener(actionListener);
        frame.add(toggleButton, BorderLayout.NORTH);
        frame.setSize(300, 125);
        frame.setVisible(true);
    }
}

Output

Mới khởi tạo

Khi được chọn màu sẽ Jtoggle sẽ được đổi

Item Listener

Tương tự như ví dụ trên nhưng chúng ta sẽ sử dụng ItemListener.

import java.awt.BorderLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JFrame;
import javax.swing.JToggleButton;

public class Main {
  public static void main(String args[]) {
    JFrame frame = new JFrame("Selecting Toggle");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JToggleButton toggleButton = new JToggleButton("Toggle Button");

    ItemListener itemListener = new ItemListener() {
      public void itemStateChanged(ItemEvent itemEvent) {
        int state = itemEvent.getStateChange();
        if (state == ItemEvent.SELECTED) {
          System.out.println("Selected");
        } else {
          System.out.println("Deselected");
        }
      }
    };
    // Attach Listeners
    toggleButton.addItemListener(itemListener);
    frame.add(toggleButton, BorderLayout.NORTH);
    frame.setSize(300, 125);
    frame.setVisible(true);
  }
}

Change Listener

ChangeListener sẽ lắng nghe mỗi khi trạng thái của JtoggleButton thay đổi

import java.awt.BorderLayout;
import javax.swing.AbstractButton;
import javax.swing.ButtonModel;
import javax.swing.JFrame;
import javax.swing.JToggleButton;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class Main {
  public static void main(String args[]) {
    JFrame frame = new JFrame("Selecting Toggle");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JToggleButton toggleButton = new JToggleButton("Toggle Button");

    ChangeListener changeListener = new ChangeListener() {
      public void stateChanged(ChangeEvent changeEvent) {
        AbstractButton abstractButton = (AbstractButton) changeEvent.getSource();
        ButtonModel buttonModel = abstractButton.getModel();
        boolean armed = buttonModel.isArmed();
        boolean pressed = buttonModel.isPressed();
        boolean selected = buttonModel.isSelected();
        System.out.println("Changed: " + armed + "/" + pressed + "/" + selected);
      }
    };

    // Attach Listeners
    toggleButton.addChangeListener(changeListener);
    frame.add(toggleButton, BorderLayout.NORTH);
    frame.setSize(300, 125);
    frame.setVisible(true);
  }
}

Nguồn tham khảo

http://www.java2s.com/Tutorials/Java/Java_Swing/0880__Java_Swing_JToggleButton.htm

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x