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.
Nội dung chính
- Cú pháp của lớp javax.swing.JButton
- Lớp này kế thừa các phương thức từ các lớp sau:
- Lớp JButton có các constructor sau:
- Các phương thức được sử dụng phổ biến của lớp JButton
- Một số phương thức được sử dụng phổ biến của của lớp AbstractButton
- Chương trình đơn giản để hiển thị hình ảnh trên button
- Chương trình ví dụ khác về lớp JButton
Cú pháp của lớp javax.swing.JButton
Cú pháp khai báo cho lớp javax.swing.JButton là:
public class JButton extends AbstractButton implements Accessible
Lớp này kế thừa các phương thức từ các lớp sau:
javax.swing.AbstractButton
javax.swing.JComponent
java.awt.Container
java.awt.Component
java.lang.Object
Lớp JButton có các constructor sau:
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.
Các phương thức được sử dụng phổ biến của lớp JButton
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
Một số phương thức được sử dụng phổ biến của của lớp AbstractButton
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ương trình đơn giản để hiển thị hình ảnh trên button
SwingJButtonExam1.javapackage vn.kienthuclaptrinh.swing; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; public class SwingJButtonExam1 { SwingJButtonExam1() { JFrame f = new JFrame(); JButton b = new JButton(new ImageIcon("b.jpg")); b.setBounds(130, 100, 100, 40); f.add(b); f.setSize(400, 300); f.setLayout(null); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { new SwingJButtonExam1(); } }
Chạy chương trình Java trên cho kết quả như sau:
Chương trình ví dụ khác về lớp JButton
SwingJButtonExam2.javapackage vn.kienthuclaptrinh.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); } }
Chạy chương trình Java trên cho kết quả như sau: