Hướng dẫn sử dụng JToolbar trong Java swing

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

  1. JToolBar() : Tạo một thanh toolbar mới theo hướng ngang
  2. JToolBar(int o) : Tạo một thanh toolbar mới theo hướng được chỉ định.
  3. JToolBar(String n) : Tạo một thanh toolbar với tên được chỉ định.
  4. 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:

  1. addSeparator() : Thêm một ngăn cách vào cuối toolbar.
  2. setFloatable(boolean b) : Nếu true, toolbar có thể kéo thả đến các vị trí khác trên ứng dụng.
  3. setLayout(LayoutManager m) : Đặt layout cho toolbar.
  4. setOrientation(int o) : Đặt hướng ngang hoặc dọc cho thanh toolbar.
  5. add(Component c) : Thêm một component vào toolbar, có thể là Button, ComboBox, etc
  6. getMargin() : Lấy giá trị margin của toolbar.
  7. setMargin(Insets m) : Đặt giá trị margin cho các component đã được thêm vào toolbar.
  8. getOrientation() : Lấy hướng của toolbar.
  9. updateUI() : Thông báo từ UIFactory rằng Giao diện đã thay đổi.
  10. setUI(ToolBarUI u) : Đặt đối tượng Giao diện hiển thị thành phần này.
  11. setRollover(boolean b) : Đặt trạng thái cuộn qua của boolean toolbar này b.
  12. setFloatable(boolean b) : Quyết định xem vị trí của thanh toolbar có thể thay đổi được hay không.
  13. setBorderPainted(boolean b): Quyết định xem có nên sơn đường viền hay không..
  14. paintBorder(Graphics g) : Sơn đường viền của thanh toolbar.
  15. isRollover() : Trả về trạng thái cuộn của toolbar.
  16. isFloatable() : Kiểm tra xem thanh toolbar có thể kéo thả đến vị trí khác hay không.
  17. isBorderPainted() : Kiểm tra xem đường viền của thanh toobar có đang được tô màu hay không
  18. getComponentIndex(Component c) : Lấy vị trí index của component được truyền vào.
  19. getComponentAtIndex(int i) : Lấy component tại vị trí i trong toolbar.
  20. 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.");
    }
}

Output

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

https://www.geeksforgeeks.org/java-swing-jtoolbar/

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