JToolBar là một phần của gói Java Swing. JToolBar là một triển khai của thanh công cụ. JToolBar là một nhóm các thành phần thường được sử dụng như các Button hoặc ComboBox. Người dùng có thể kéo JToolBar đến các vị trí khác nhau trong màn hình ứng dụng.
Khởi tạo JToolBar
- JToolBar() : Tạo một thanh toolbar mới theo hướng ngang
- JToolBar(int o) : Tạo một thanh toolbar mới theo hướng được chỉ định.
- JToolBar(String n) : Tạo một thanh toolbar với tên được chỉ định.
- JToolBar(String n, int o) : Tạo một thanh toolbar với tên và hướng được chỉ định.
Các hàm thường xuyên sử dụng trong JToolbar:
- addSeparator() : Thêm một ngăn cách vào cuối toolbar.
- setFloatable(boolean b) : Nếu true, toolbar có thể kéo thả đến các vị trí khác trên ứng dụng.
- setLayout(LayoutManager m) : Đặt layout cho toolbar.
- setOrientation(int o) : Đặt hướng ngang hoặc dọc cho thanh toolbar.
- add(Component c) : Thêm một component vào toolbar, có thể là Button, ComboBox, etc
- getMargin() : Lấy giá trị margin của toolbar.
- setMargin(Insets m) : Đặt giá trị margin cho các component đã được thêm vào toolbar.
- getOrientation() : Lấy hướng của toolbar.
- updateUI() : Thông báo từ UIFactory rằng Giao diện đã thay đổi.
- setUI(ToolBarUI u) : Đặt đối tượng Giao diện hiển thị thành phần này.
- setRollover(boolean b) : Đặt trạng thái cuộn qua của boolean toolbar này b.
- setFloatable(boolean b) : Quyết định xem vị trí của thanh toolbar có thể thay đổi được hay không.
- setBorderPainted(boolean b): Quyết định xem có nên sơn đường viền hay không..
- paintBorder(Graphics g) : Sơn đường viền của thanh toolbar.
- isRollover() : Trả về trạng thái cuộn của toolbar.
- isFloatable() : Kiểm tra xem thanh toolbar có thể kéo thả đến vị trí khác hay không.
- isBorderPainted() : Kiểm tra xem đường viền của thanh toobar có đang được tô màu hay không
- getComponentIndex(Component c) : Lấy vị trí index của component được truyền vào.
- getComponentAtIndex(int i) : Lấy component tại vị trí i trong toolbar.
- addSeparator(Dimension size) : Them dấu ngăn cách vào cuối với kích thước được chỉ định.
Ví dụ tạo thanh toolbar đơn giản với các Button và ComboBox
import java.awt.*; import javax.swing.*; import java.awt.event.*; class Tool extends JFrame { // toolbar static JToolBar tb; // buttons static JButton b1, b2; // create a frame static JFrame f; // create a combo box static JComboBox x; public static void main(String[] argv) { // create a frame f = new JFrame("Toolbar demo"); // set layout for frame f.setLayout(new BorderLayout()); // create a toolbar tb = new JToolBar(); // create a panel JPanel p = new JPanel(); // create a combobox x = new JComboBox(new String[]{"item 1", "item 2", "item 3"}); // create new buttons b1 = new JButton("button 1"); b2 = new JButton("button 2"); // add buttons p.add(b1); p.add(b2); // add menu to menu bar p.add(x); tb.add(p); // add toolbar to frame f.add(tb, BorderLayout.NORTH); // set the size of the frame f.setSize(500, 500); f.setVisible(true); } }
Output
Xử lý sự kiện trong JToolbar
Chúng ta có thể thêm các sự kiện cho từng thành phần con của toolbar như thông thường. Nếu chưa biết cách thì các bạn có thể tìm hiểu về Button, ComboBox, etc để biết cách thêm xử lý sự kiện cho chúng nhé.
import java.awt.*; import javax.swing.*; import java.awt.event.*; class Tool extends JFrame implements ActionListener, ItemListener { // toolbar static JToolBar tb; // buttons static JButton b1, b2; // create a frame static JFrame f; // create a combo box static JComboBox x; // create a label static JLabel l, l1; public static void main(String[] args) { // create a object of class Tool to = new Tool(); // create a label l = new JLabel("nothing selected"); l1 = new JLabel("nothing selected"); // create a frame f = new JFrame("Toolbar demo"); // set layout for frame f.setLayout(new BorderLayout()); // create a toolbar tb = new JToolBar(); // create a panel JPanel p = new JPanel(); // create a combobox x = new JComboBox(new String[]{"item 1", "item 2", "item 3"}); // add actionListener x.addItemListener(to); // create new buttons b1 = new JButton("button 1"); b2 = new JButton("button 2"); // add ActionListener to it b1.addActionListener(to); b2.addActionListener(to); // add buttons p.add(b1); p.add(b2); // add menu to menu bar p.add(x); tb.add(p); // create a panel JPanel p1 = new JPanel(); p1.add(l); p1.add(l1); // add toolbar to frame f.add(tb, BorderLayout.NORTH); f.add(p1, BorderLayout.CENTER); // set the size of the frame f.setSize(500, 500); f.setVisible(true); } // if button is pressed public void actionPerformed(ActionEvent e) { l.setText(e.getActionCommand() + " selected."); } // if combo box is selected public void itemStateChanged(ItemEvent e) { l1.setText(x.getSelectedItem() + " selected."); } }
Tạo thanh toobar theo chiều dọc
Để tạo thanh toolbar theo chiều dọc chúng ta chỉ cần khởi tạo JToolbar với hằng số JToolBar.VERTICAL.
import javax.swing.*; import java.awt.*; public class Main { public static void main(String[] args) { JToolBar toolbar = new JToolBar(JToolBar.VERTICAL); JButton selectb = new JButton("Selected Button"); JButton freehandb = new JButton("Free Hand Buttoon"); JButton shapeedb = new JButton("Shape Button"); JButton penb = new JButton("Pen Button"); toolbar.add(selectb); toolbar.add(freehandb); toolbar.add(shapeedb); toolbar.add(penb); JFrame f = new JFrame(); f.add(toolbar, BorderLayout.WEST); f.setSize(250, 350); f.setLocationRelativeTo(null); f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); f.setVisible(true); } }
Output
Nguồn tham khảo
http://www.java2s.com/Tutorials/Java/Java_Swing/1000__Java_Swing_JToolBar.htm