Lớp JButton trong Java Swing – Học lập trình Java Online – VietTuts

Lớp JButton trong Java Swing được sử dụng để tạo một nút có thể click. Thành phần này có một label và tạo một sự kiện (event) khi được nhấn. Bạn cũng có thể chèn ảnh vào button.

Cú pháp khai báo cho lớp javax.swing.JButton là:

1. JButton(): Tạo một button mà không thiết lập text hoặc icon.

2. JButton(Action a): Tạo một button tại đây các thuộc tính được nhận từ Action đã cung cấp.

3. JButton(Icon icon): Tạo một button với một icon.

4. JButton(String text): Tạo một button với text.

5. JButton(String text, Icon icon): Tạo một button với text ban đầu và một icon.

1. void removeNotify(): Ghi đè JComponent.removeNotify để kiểm tra xem button này hiện tại được thiết lập như là button mặc định trên RootPane hay không, và nếu có, thiết lập button mặc định của RootPane về null để bảo đảm rằng Rootpane không giữ một tham chiếu button không hợp lệ.

2. void setDefaultCapable(boolean defaultCapable): Thiết lập thuộc tính defaultCapable, mà quyết định xem có hay không button này có thể được tạo là button mặc định cho Root Pane của nó

3. void updateUI(): Phục hồi thuộc tính UI về một giá trị từ L&F hiện tại

1. public void setText(String s): được sử dụng để thiết lập text đã cho trên button.

2. public String getText(): được sử dụng để trả về text của button.

3. public void setEnabled(boolean b): được sử dụng để kích hoạt hoặc vô hiệu hóa button.

4. public void setIcon(Icon b): được sử dụng để thiết lập Icon đã cho trên button.

5. public Icon getIcon(): được sử dụng để lấy Icon của button.

6. public void setMnemonic(int a): được sử dụng để thiết lập thuộc tính mnemonic trên button.

7. public void addActionListener(ActionListener a): được sử dụng để thêm action listener tới đối tượng này.

Chạy chương trình Java trên cho kết quả như sau:

package vn.viettuts.swing;

import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;

public class SwingJButtonExam2 {

    private JFrame mainFrame;
    private JLabel headerLabel;
    private JLabel statusLabel;
    private JPanel controlPanel;

    public SwingJButtonExam2() {
        prepareGUI();
    }

    public static void main(String[] args) {
        SwingJButtonExam2 swingJButtonExam2 = new SwingJButtonExam2();
        swingJButtonExam2.showButtonDemo();
    }

    private void prepareGUI() {
        mainFrame = new JFrame("Vi du Java Swing - JButton");
        mainFrame.setSize(400, 300);
        mainFrame.setLayout(new GridLayout(3, 1));
        mainFrame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent windowEvent) {
                System.exit(0);
            }
        });
        headerLabel = new JLabel("", JLabel.CENTER);
        statusLabel = new JLabel("", JLabel.CENTER);
        statusLabel.setSize(350, 100);
        controlPanel = new JPanel();
        controlPanel.setLayout(new FlowLayout());
        mainFrame.add(headerLabel);
        mainFrame.add(controlPanel);
        mainFrame.add(statusLabel);
        mainFrame.setVisible(true);
    }

    private void showButtonDemo() {
        headerLabel.setText("Control in action: Button");
        JButton okButton = new JButton("OK");
        JButton javaButton = new JButton("Submit");
        JButton cancelButton = new JButton("Cancel");
        cancelButton.setHorizontalTextPosition(SwingConstants.LEFT);
        okButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                statusLabel.setText("Ok Button clicked.");
            }
        });
        javaButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                statusLabel.setText("Submit Button clicked.");
            }
        });
        cancelButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                statusLabel.setText("Cancel Button clicked.");
            }
        });
        controlPanel.add(okButton);
        controlPanel.add(javaButton);
        controlPanel.add(cancelButton);
        mainFrame.setVisible(true);
    }
}