JSplitPane用于划分两个组件。这两个组件根据外观和实现方式进行划分, 用户可以调整它们的大小。如果两个组件的最小大小大于拆分窗格的大小, 则分隔符将不允许你调整其大小。
【Java JSplitPane】拆分窗格中的两个组件可以使用JSplitPane.HORIZONTAL_SPLIT从左到右对齐, 或者使用JSplitPane.VERTICAL_SPLIT从上到下对齐。当用户调整组件的大小时, 将使用组件的最小大小来确定可以设置组件的最大/最小位置。
嵌套类
修饰符和类型 |
类 |
描述 |
受保护的阶级 |
JSplitPane.AccessibleJSplitPane |
此类实现对JsplitPane类的可访问性支持。 |
有用的领域
修饰符和类型 |
领域 |
描述 |
static String |
BOTTOM |
它用于在另一个组件下方添加一个组件。 |
static String |
CONTINUOUS_LAYOUT_PROPERTY |
连续布局的绑定属性名称。 |
静态字符串 |
DIVIDER |
它用于添加一个将代表分隔线的Component。 |
静态整数 |
HORIZONTAL_SPLIT |
水平分割表示组件沿x轴分割。 |
受保护的int |
lastDividerLocation |
拆分窗格的先前位置。 |
受保护的组件 |
leftComponent |
左侧或顶部组件。 |
静态整数 |
VERTICAL_SPLIT |
垂直拆分表示组件沿y轴拆分。 |
受保护的组件 |
rightComponent |
右侧或底部组件。 |
受保护的int |
orientation |
视图如何拆分。 |
建设者
Constructor |
Description |
JSplitPane() |
它创建一个新的JsplitPane, 该JsplitPane配置为使用两个按钮将这些子组件水平并排排列。 |
JSplitPane(int newOrientation) |
它创建一个配置了指定方向的新JsplitPane。 |
JSplitPane(int newOrientation, boolean newContinuousLayout) |
它使用指定的方向和重绘样式创建一个新的JsplitPane。 |
JSplitPane(int newOrientation, boolean newContinuousLayout, Component newLeftComponent, Component newRightComponent) |
它使用指定的方向和重绘样式以及指定的组件创建一个新的JsplitPane。 |
JSplitPane(int newOrientation, Component newLeftComponent, Component newRightComponent) |
它使用指定的方向和指定的组件创建一个新的JsplitPane。 |
有用的方法
修饰符和类型 |
方法 |
描述 |
protected void |
addImpl(Component comp, Object constraints, int index) |
它将指定的组件放入此拆分窗格。 |
AccessibleContext |
getAccessibleContext() |
它获取与此JSplitPane关联的AccessibleContext。 |
int |
getDividerLocation() |
它返回传递给setDividerLocation的最后一个值。 |
int |
getDividerSize() |
它返回分隔符的大小。 |
Component |
getBottomComponent() |
它返回下面或分隔符右侧的组件。 |
Component |
getRightComponent() |
它将组件返回到分隔线的右侧(或下方)。 |
SplitPaneUI |
getUI() |
它返回提供当前外观的SplitPaneUI。 |
boolean |
isContinuousLayout() |
它获取ContinuousLayout属性。 |
boolean |
isOneTouchExpandable() |
它获取oneTouchExpandable属性。 |
void |
setOrientation(int orientation) |
它获取方向或分割器的分割方式。 |
JSplitPane示例
import java.awt.FlowLayout;
import java.awt.Panel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JSplitPane;
public class JSplitPaneExample {
private static void createAndShow() {
// Create and set up the window.
final JFrame frame = new JFrame("JSplitPane Example");
// Display the window.
frame.setSize(300, 300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// set flow layout for the frame
frame.getContentPane().setLayout(new FlowLayout());
String[] option1 = { "A", "B", "C", "D", "E" };
JComboBox box1 = new JComboBox(option1);
String[] option2 = {"1", "2", "3", "4", "5"};
JComboBox box2 = new JComboBox(option2);
Panel panel1 = new Panel();
panel1.add(box1);
Panel panel2 = new Panel();
panel2.add(box2);
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, panel1, panel2);
// JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, // panel1, panel2);
frame.getContentPane().add(splitPane);
}
public static void main(String[] args) {
// Schedule a job for the event-dispatching thread:
// creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShow();
}
});
}
}
输出:
文章图片
推荐阅读