【问题标题】:Resize Control with Java JSplitPane使用 Java JSplitPane 调整控件大小
【发布时间】:2012-01-05 20:52:17
【问题描述】:

请在下面的链接中查看我的图片,然后阅读下面的图片以了解有关我的问题的更多详细信息。

想象一下,这是一个使用 JSplitPane 分成两部分的基本框架,默认情况下,当您调整框架大小时,灰色部分会改变它的大小,但我希望白色部分根据框架大小调整大小。

任何对正确方向的帮助都将不胜感激,因为我现在正在做一个项目,我正在尝试各种奇怪的东西,为我在新的一年里设定的最大项目做准备。 :)

问候 塞隆

【问题讨论】:

    标签: java swing resize jsplitpane


    【解决方案1】:

    JFrame resize 时需要使用setResizeWeight 让左右占用多余空间或缩小尺寸,示例代码如下:

        import java.awt.BorderLayout;
    
        import javax.swing.JButton;
        import javax.swing.JFrame;
        import javax.swing.JSplitPane;
    
        public class TestJSplitPane {
        private void init(){
            JFrame frame = new JFrame();
            frame.setLayout(new BorderLayout());
            JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
            splitPane.setRightComponent(new JButton("Here I Am"));
            splitPane.setLeftComponent(new JButton("Me Too"));
            splitPane.setResizeWeight(0.5);
            frame.add(splitPane, BorderLayout.CENTER);
            frame.pack();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
        }
    
        public static void main(String[] args) {
            new TestJSplitPane().init();
        }
    }
    

    setResizeWeight 的 Java 文档。

    希望这会有所帮助。

    【讨论】:

    • 您好,谢谢,但就像现在的示例一样,我希望右侧组件的大小在调整大小时保持不变,并将额外的大小添加到左侧。
    • 而不是上面示例中的 splitPane.setResizeWeight(0.5) 使其成为 splitPane.setResizeWeight(1.0),这将确保正确的组件在调整大小时不会占用额外的空间。
    • mprabhat,非常感谢,正确,现在可以使用。你们中的任何人都可能有关于如何使用 JMenuBar 和 Synth LAF 的教程的链接吗?
    猜你喜欢
    • 2018-02-06
    • 1970-01-01
    • 2013-08-04
    • 2018-04-20
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 2011-03-30
    相关资源
    最近更新 更多