【问题标题】:alternatives/improvements to JSplitPane [closed]JSplitPane 的替代方案/改进 [关闭]
【发布时间】:2009-08-04 16:14:57
【问题描述】:

我有一个相当简单的对话框,其中包含一对大小大致相等的 JPanel,包含在 JSplitPane 中。现在我正在考虑添加第三个 JPanel,但我不太确定是否有明显的解决方案。那里有一个好的窗口停靠框架吗?或者这是一件非常复杂的事情?如果我只是坚持使用 3 面板拆分,我是否必须使用一对嵌套的 JSplitPanes 或者是否有允许 3 向拆分的替代方案?

【问题讨论】:

    标签: swing layout jsplitpane


    【解决方案1】:

    SwingX 库有 JXMultiSplitPane 类,它允许您创建可调整大小面板的任何布局。

    关于它的一篇非常好的文章在http://today.java.net/pub/a/today/2006/03/23/multi-split-pane.html

    【讨论】:

    • 哦!很好......谢谢,我会看看它。
    【解决方案2】:

    假设您有三个面板:

    JPanel panel1;
    JPanel panel2;
    JPanel panel3;
    
    // set up panels
    ...
    
    // put three panels into a horizontal split pane,
    // with 2 resizeable dividers
    JSplitPane splitPaneLeft = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
    JSplitPane splitPaneRight = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
    splitPaneLeft.setLeftComponent( panel1 );
    splitPaneLeft.setRightComponent( panel2 );
    splitPaneRight.setLeftComponent( splitPaneLeft );
    splitPaneRight.setRightComponent( panel3 );
    
    // put splitPaneRight onto a single panel
    JPanel panelSplit = new JPanel();
    panelSplit.add( splitPaneRight );
    

    【讨论】:

    • 注意最后一行。您将 LAST splitPane 添加到容器中,而不是像我那样添加第一个,然后想知道为什么其他人没有出现。很不明显。
    • 这就是我如何直观地使我的 GUI 与 3 个面板一起工作。然而,这引发了调整拆分窗格大小的问题:现在可以在左面板上调整右面板的大小,但反之则不行。尝试将主面板切换到 splitPaneLeft 以查看不同的调整大小功能。选择最适合您的 GUI 的样式。
    猜你喜欢
    • 2012-10-08
    • 2010-10-11
    • 2017-03-23
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 2013-04-04
    • 1970-01-01
    相关资源
    最近更新 更多