Cách sử dụng JSeparator trong Java Swing

JSeparator là một component trong Java swing được sử dụng để tạo một đường phân cách giữa 2 component. Cụ thể hơn, nó chủ yếu được sử dụng để tạo đường phân chia giữa các mục menu trong JMenu. Trong JMenu hoặc JPopupMenu chúng ta có thể sử dụng hàm addSeparartor để tạo dấu phân cách.

Cách khởi tạo JSeparator

Để khởi tạo một JSeparator instance chúng ta có thể sử dụng 2 constructor sau:

  1. separator(): Tạo một dãi phân cách JSeparator theo chiều ngang
  2. JSeparator(int o): Tạo một dãi phân cách JSeparator theo chiều ngang hoặc chiều dọc tùy thuộc vào tham số truyền vào.

Các method thường sử dụng trong JSeparator :

method explanation
setOrientation(int o) Đặt hướng ngang, dọc cho JSeparator
getOrientation() Trả về hướng ngang hoặc dọc của JSeparator đang sử dụng
addSeparator() Thêm JSeparator và JMenu hoặc JPopupMenu

Ví dụ sử dụng JSeparator

Vertical separator

Đầu tiên chúng ta sẽ tạo một chương trình sử dụng JSeparator theo chiều dọc. Trong ví dụ này chúng ta sẽ có 2 label được đặt trên một JPanel. Sau đó sử dụng JSeparator để tạo một đường ngăn cách giữa 2 label này.

import javax.swing.*;
import java.awt.*;

public class JSeparatorExample extends JFrame{

    public static void main(String args[])
    {
        JFrame f = new JFrame("separator");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel p =new JPanel();

        JLabel l = new JLabel("this is label 1");
        JLabel l1 = new JLabel("this is label 2");

        JSeparator s = new JSeparator(SwingConstants.VERTICAL);

        p.add(l);
        p.add(s);
        p.add(l1);

        p.setLayout(new GridLayout(1,0));

        f.add(p);

        f.setSize(400,400);
        f.setVisible(true);
    }
}

Kết quả

Horizontal separator

Tương tự như Vertical separator chúng ta chỉ cần sử dụng SwingConstants.HORIZONTAL để điều chỉnh hướng của Jseparator theo chiều ngang.

import javax.swing.*;
import java.awt.*;

public class JSeparatorExample {

    public static void main(String args[])
    {
        JFrame f = new JFrame("separator");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel p =new JPanel();

        JLabel l = new JLabel("this is label 1");
        JLabel l1 = new JLabel("this is label 2");

        JSeparator s = new JSeparator(SwingConstants.HORIZONTAL);

        p.add(l);
        p.add(s);
        p.add(l1);

        p.setLayout(new GridLayout(0,1));

        f.add(p);

        f.setSize(400,400);
        f.setVisible(true);
    }
}

Kết quả

Tạo dãy phân cách trong Menu

Đây có lẽ là nơi áp dụng JSeparator nhiều nhất vì nó giúp phân cách các component trong menu, giúp cho việc nhận diện các item trong menu dễ dàng hơn. 

import javax.swing.*;
import java.awt.event.KeyEvent;

public class JSeparatorExample  {

    public static void main(final String args[]) {
        JFrame frame = new JFrame("MenuSample Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JMenuBar menuBar = new JMenuBar();

        // File Menu, F - Mnemonic
        JMenu fileMenu = new JMenu("File");
        fileMenu.setMnemonic(KeyEvent.VK_F);
        menuBar.add(fileMenu);

        // File->New, N - Mnemonic
        JMenuItem newMenuItem = new JMenuItem("New", KeyEvent.VK_N);
        fileMenu.add(newMenuItem);

        // Separator
        fileMenu.addSeparator();

        // File->Save, S - Mnemonic
        JMenuItem saveMenuItem = new JMenuItem("Save", KeyEvent.VK_S);
        fileMenu.add(saveMenuItem);

        frame.setJMenuBar(menuBar);
        frame.setSize(350, 250);
        frame.setVisible(true);
    }
}

Kết quả

Nguồn tham khảo

http://www.java2s.com/Tutorials/Java/Java_Swing/0980__Java_Swing_JSeparator.htm

https://www.geeksforgeeks.org/java-swing-jseparator-with-examples/

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