日期:2014-05-20  浏览次数:20784 次

java界面问题
下面的功能是如何实现的,求高手指点思路

这是一个java swing界面被分成了三部分,每部分可以自由添加组件,拖动白线可以自由改变每部分的大小,如下图,我把第一条白线往下拖,中间部分就缩小了,上面部分就增大了。

求高手指点一下思路,我只知道这白线的功能和JSplitPane中的Divider功能类似,但是JSplitPane只能分割成两个界面
------解决方案--------------------
两个JSplitPane不就好了
------解决方案--------------------
java.lang.Object
    java.awt.Component
        java.awt.Container
            javax.swing.JComponent
                javax.swing.JSplitPane

JSplitPane中再放JSplitPane,从上面的类继承图来看能知道JSplitPane是一个JComponent.
------解决方案--------------------
我这里的效果,用了setBorder(null):


import javax.swing.*;

public class Test {
    public static void main(String[] args) {
        JSplitPane topPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
            new JButton("One"),
            new JButton("Two"));
        JSplitPane mainPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
            topPane,
            new JButton("Three"));

        topPane.setBorder(null);
        mainPane.setBorder(null);

        JFrame frame = new JFrame();
        frame.setContentPane(mainPane);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 300);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}