Java's Swing 用鼠标改变布局的大小
Java's Swing changing size of layout regious with mouse
我有一个 JFrame,其 BoxLayout 分为 2 列。理想情况下,我希望当鼠标悬停在分界线上时,我可以单击并拖动该分界线以动态更改布局的大小。有没有工具或更好的方法来做到这一点?
使用 JSplitPane 作为 contentPane
的 jFrame
是更好的方法。
同上,使用JSplitPane。请参阅下面的示例
public class SplitPaneDemo extends JFrame {
public static void main(String[] args) {
EventQueue.invokeLater(() -> new SplitPaneDemo());
}
SplitPaneDemo() {
super("SplitPaneDemo");
JLabel lhs = new JLabel("LHS");
lhs.setPreferredSize(new Dimension(320, 200));
JLabel rhs = new JLabel("RHS");
rhs.setPreferredSize(new Dimension(320, 200));
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
splitPane.setContinuousLayout(true); // Update window as splitter is moved
splitPane.setLeftComponent(lhs);
splitPane.setRightComponent(rhs);
setContentPane(splitPane);
pack();
setVisible(true);
}
}
我有一个 JFrame,其 BoxLayout 分为 2 列。理想情况下,我希望当鼠标悬停在分界线上时,我可以单击并拖动该分界线以动态更改布局的大小。有没有工具或更好的方法来做到这一点?
使用 JSplitPane 作为 contentPane
的 jFrame
是更好的方法。
同上,使用JSplitPane。请参阅下面的示例
public class SplitPaneDemo extends JFrame {
public static void main(String[] args) {
EventQueue.invokeLater(() -> new SplitPaneDemo());
}
SplitPaneDemo() {
super("SplitPaneDemo");
JLabel lhs = new JLabel("LHS");
lhs.setPreferredSize(new Dimension(320, 200));
JLabel rhs = new JLabel("RHS");
rhs.setPreferredSize(new Dimension(320, 200));
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
splitPane.setContinuousLayout(true); // Update window as splitter is moved
splitPane.setLeftComponent(lhs);
splitPane.setRightComponent(rhs);
setContentPane(splitPane);
pack();
setVisible(true);
}
}