JSplitPane được sử dụng để phân chia hai thành phần. Hai thành phần được phân chia dựa trên việc triển khai giao diện và chúng có thể được người dùng thay đổi kích thước. Nếu kích thước tối thiểu của hai thành phần lớn hơn kích thước của ngăn chia, thì ngăn sẽ không cho phép bạn thay đổi kích thước của nó.
Hai thành phần trong ngăn phân tách có thể được căn chỉnh từ trái sang phải bằng JSplitPane.HORIZONTAL_SPLIT hoặc từ trên xuống dưới bằng JSplitPane.VERTICAL_SPLIT. Khi người dùng thay đổi kích thước các thành phần, kích thước tối thiểu của các thành phần được sử dụng để xác định vị trí tối đa / tối thiểu mà các thành phần có thể được đặt.
Các bài viết khác:
Giới thiệu về JSplitPane
JSplitPane là một thành phần trong Java Swing cho phép chia một khung hoặc một giao diện thành hai phần, mỗi phần có thể điều chỉnh kích thước và vị trí của nó. JSplitPane thường được sử dụng để tạo các giao diện người dùng có khả năng điều chỉnh kích thước hoặc phân chia nội dung.
Với JSplitPane, bạn có thể chia giao diện người dùng thành hai phần dọc hoặc ngang, và điều chỉnh kích thước của các phần này bằng cách kéo thanh phân chia. Mỗi phần của JSplitPane có thể chứa các thành phần khác, như JPanel, JTable, JTextArea, và nhiều thành phần khác của Java Swing.
JSplitPane cung cấp nhiều tùy chọn cấu hình và chức năng như:
- Đặt tỷ lệ kích thước mặc định cho các phần của JSplitPane.
- Thiết lập kích thước tối thiểu và tối đa cho các phần.
- Xử lý sự kiện khi thay đổi kích thước hoặc vị trí của thanh phân chia.
- Đặt vị trí của thanh phân chia một cách tương đối hoặc tuyệt đối.
JSplitPane giúp tạo ra các giao diện linh hoạt và tùy chỉnh được trong Java Swing. Nó rất hữu ích khi bạn muốn cho phép người dùng điều chỉnh kích thước hoặc phân chia các phần của giao diện.
Xem thêm Các plugin hỗ trợ mạng xã hội
Class lồng nhau
Modifier and Type | Class | Description |
protected class | JSplitPane.AccessibleJSplitPane | Lớp này thực hiện hỗ trợ khả năng truy cập cho lớp JsplitPane. |
Useful Fields
Modifier and Type | Field | Description |
static String | BOTTOM | Nó sử dụng để thêm một Thành phần bên dưới Thành phần khác. |
static String | CONTINUOUS_LAYOUT_PROPERTY | Ràng buộc tên thuộc tính cho liên tụcLayout. |
static String | DIVIDER | Nó sử dụng để thêm một Thành phần sẽ đại diện cho dải phân cách. |
static int | HORIZONTAL_SPLIT | Phân chia theo chiều ngang cho biết các Thành phần được chia dọc theo trục x. |
protected int | lastDividerLocation | Vị trí trước đó của ngăn tách. |
protected Component | leftComponent | Thành phần bên trái hoặc trên cùng. |
static int | VERTICAL_SPLIT | Chia dọc cho biết các Thành phần được chia dọc theo trục y. |
protected Component | rightComponent | Thành phần bên phải hoặc dưới cùng. |
protected int | orientation | Làm thế nào các quan điểm được phân chia. |
Constructors
Constructor | Description |
JSplitPane() | Nó tạo ra một JsplitPane mới được cấu hình để sắp xếp các thành phần con cạnh nhau theo chiều ngang, sử dụng hai nút cho các thành phần. |
JSplitPane(int newOrientation) | Nó tạo ra một JsplitPane mới được định cấu hình với hướng được chỉ định. |
JSplitPane(int newOrientation, boolean newContinuousLayout) | Nó tạo ra một JsplitPane mới với định hướng được chỉ định và phong cách vẽ lại. |
JSplitPane(int newOrientation, boolean newContinuousLayout, Component newLeftComponent, Component newRightComponent) | Nó tạo ra một JsplitPane mới với hướng được chỉ định và kiểu vẽ lại, và với các thành phần được chỉ định. |
JSplitPane(int newOrientation, Component newLeftComponent, Component newRightComponent) | Nó tạo ra một JsplitPane mới với hướng được chỉ định và các thành phần được chỉ định. |
Các Methods
Modifier and Type | Method | Description |
protected void | addImpl(Component comp, Object constraints, int index) | Nó cdds thành phần được chỉ định vào ngăn chia này. |
AccessibleContext | getAccessibleContext() | Nó nhận AccessibleContext được liên kết với JSplitPane này. |
int | getDividerLocation() | Nó trả về giá trị cuối cùng được truyền cho setDividerLocation. |
int | getDividerSize() | Nó trả về kích thước của dải phân cách. |
Component | getBottomComponent() | Nó trả về thành phần bên dưới hoặc bên phải của dải phân cách. |
Component | getRightComponent() | Nó trả về thành phần ở bên phải (hoặc bên dưới) dải phân cách. |
SplitPaneUI | getUI() | Nó trả về SplitPaneUI đang cung cấp giao diện hiện tại. |
boolean | isContinuousLayout() | Nó nhận thuộc tính liên tục. |
boolean | isOneTouchExpandable() | Nó nhận thuộc tính oneTouchExpandable. |
void | setOrientation(int orientation) | Nó nhận được định hướng hoặc cách bộ chia được phân chia. |
Xem thêm Machine learning: Thuật toán SVM
Cách sử dụng JSplitPane trong ứng dụng
Để sử dụng JSplitPane trong ứng dụng của bạn, bạn có thể thực hiện các bước sau:
- Import các gói cần thiết:
import javax.swing.*; import java.awt.*;
- Tạo đối tượng JSplitPane và các thành phần con:
// Tạo các thành phần con Component component1 = new JButton("Component 1"); Component component2 = new JButton("Component 2"); // Tạo JSplitPane JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, component1, component2);
Trong ví dụ này, chúng ta tạo hai JButton là component1 và component2, sau đó tạo JSplitPane với hai thành phần này. Tham số đầu tiên của JSplitPane là hướng chia (JSplitPane.HORIZONTAL_SPLIT cho chia ngang hoặc JSplitPane.VERTICAL_SPLIT cho chia dọc).
- Tùy chỉnh JSplitPane:
// Đặt kích thước tối thiểu cho các thành phần splitPane.setDividerSize(5); splitPane.setDividerLocation(250); // Đặt tỷ lệ mặc định cho các thành phần splitPane.setResizeWeight(0.5); // Đặt khả năng điều chỉnh kích thước splitPane.setOneTouchExpandable(true);
Trong ví dụ này, chúng ta sử dụng các phương thức của JSplitPane để đặt các thuộc tính như kích thước của thanh phân chia, tỷ lệ mặc định giữa hai thành phần, khả năng điều chỉnh kích thước với một cú nhấp chuột.
- Thêm JSplitPane vào giao diện người dùng:
// Tạo JFrame và thêm JSplitPane vào đó JFrame frame = new JFrame("Split Pane Example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(splitPane); frame.pack(); frame.setVisible(true);
Trong ví dụ này, chúng ta tạo một JFrame và thêm JSplitPane vào content pane của JFrame. Cuối cùng, hiển thị JFrame để xem kết quả.
Lưu ý rằng JSplitPane cũng có thể chứa các thành phần khác như JPanel, JTable, JTextArea và nhiều thành phần khác. Bạn có thể tùy chỉnh JSplitPane bằng cách đặt các thuộc tính và phương thức phù hợp để đáp ứng yêu cầu của ứng dụng của bạn.
Xem thêm Tập huấn luyện và kiểm tra trong Machine learning
Xử lý sự kiện trên JSplitPane
Để xử lý sự kiện trên JSplitPane trong Java Swing, bạn có thể sử dụng các trình xử lý sự kiện (event listeners) như MouseListener hoặc ComponentListener. Dưới đây là một ví dụ về cách xử lý sự kiện khi thay đổi kích thước của JSplitPane bằng cách sử dụng ComponentListener:
- Implement interface ComponentListener trong lớp của bạn:
import java.awt.*; import java.awt.event.*; public class MyComponentListener implements ComponentListener { // Implement các phương thức của ComponentListener }
- Override các phương thức của ComponentListener:
public class MyComponentListener implements ComponentListener { @Override public void componentResized(ComponentEvent e) { // Xử lý sự kiện khi JSplitPane thay đổi kích thước } @Override public void componentMoved(ComponentEvent e) { // Xử lý sự kiện khi JSplitPane được di chuyển } @Override public void componentShown(ComponentEvent e) { // Xử lý sự kiện khi JSplitPane hiển thị } @Override public void componentHidden(ComponentEvent e) { // Xử lý sự kiện khi JSplitPane bị ẩn } }
- Gán trình xử lý sự kiện cho JSplitPane:
JSplitPane splitPane = new JSplitPane(); splitPane.addComponentListener(new MyComponentListener());
Trong ví dụ này, chúng ta tạo một đối tượng JSplitPane và gán trình xử lý sự kiện MyComponentListener cho nó bằng cách sử dụng phương thức addComponentListener().
- Xử lý sự kiện trong các phương thức của MyComponentListener:
public class MyComponentListener implements ComponentListener { @Override public void componentResized(ComponentEvent e) { JSplitPane splitPane = (JSplitPane) e.getComponent(); // Xử lý sự kiện khi JSplitPane thay đổi kích thước } // Các phương thức khác }
Trong phương thức componentResized(), bạn có thể lấy JSplitPane từ ComponentEvent bằng cách sử dụng phương thức getComponent(). Sau đó, bạn có thể xử lý các thay đổi kích thước của JSplitPane theo ý muốn.
Lưu ý rằng cách xử lý sự kiện có thể khác nhau tùy thuộc vào yêu cầu của ứng dụng của bạn. Bạn có thể sử dụng các trình xử lý sự kiện khác như MouseListener để xử lý các sự kiện như click chuột trên JSplitPane.
Xem thêm Giao thức Mạng trong TCP/IP
Tùy chỉnh giao diện JSplitPane
Để tùy chỉnh giao diện của JSplitPane trong Java Swing, bạn có thể sử dụng các phương thức và thuộc tính của nó. Dưới đây là một số cách tùy chỉnh giao diện JSplitPane:
- Đổi màu nền và viền:
splitPane.setBackground(Color.RED); splitPane.setBorder(BorderFactory.createLineBorder(Color.BLUE));
Bạn có thể sử dụng phương thức setBackground()
để đổi màu nền của JSplitPane và setBorder()
để đặt viền bao quanh.
- Đặt kích thước cho thanh phân chia (divider):
splitPane.setDividerSize(5); splitPane.setDividerLocation(250);
Bạn có thể sử dụng setDividerSize()
để đặt kích thước cho thanh phân chia và setDividerLocation()
để đặt vị trí ban đầu của thanh phân chia. Giá trị của setDividerLocation()
được tính bằng pixel.
- Đặt tỷ lệ mặc định cho các thành phần:
splitPane.setOneTouchExpandable(true); splitPane.setContinuousLayout(true);
Bằng cách sử dụng setResizeWeight()
, bạn có thể đặt tỷ lệ mặc định cho hai thành phần con trong JSplitPane. Giá trị 0.5 tương đương với tỷ lệ 50:50.
- Thay đổi biểu tượng chevron trên thanh phân chia:
splitPane.setOneTouchExpandable(true); splitPane.setContinuousLayout(true);
Bằng cách sử dụng setOneTouchExpandable(true)
, bạn có thể hiển thị biểu tượng chevron trên thanh phân chia để cho phép người dùng mở rộng hoặc thu gọn một phần của JSplitPane. setContinuousLayout(true)
sẽ giữ các thành phần con hiển thị liên tục trong quá trình thay đổi kích thước của JSplitPane.
- Tùy chỉnh hướng chia:
splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT);
Bằng cách sử dụng setOrientation()
, bạn có thể thay đổi hướng chia của JSplitPane thành chiều dọc (JSplitPane.VERTICAL_SPLIT
) hoặc chiều ngang (JSplitPane.HORIZONTAL_SPLIT
).
Bằng cách sử dụng các phương thức và thuộc tính này, bạn có thể tùy chỉnh giao diện của JSplitPane để đáp ứng yêu cầu của ứng dụng của bạn. Lưu ý rằng cách tùy chỉnh giao diện có thể khác nhau tùy thuộc vào yêu cầu cụ thể của bạn.
Xem thêm phép chia trong c++