jxmultisplitpane:怎么用?

问题描述

| 我为JXMultiSplitPane找到了一个Javadoc,但我一无所知。我将如何使用它显示水平排列的5个JPanel,中间有分隔线?     

解决方法

它无法完全回答您的问题,但希望对您有所帮助。 请检查这段代码。该代码摘自2007年的swinglabs演示。加载需要一段时间,因此请耐心等待。
//Simple case: creates a split pane with three
//compartments
JXMultiSplitPane sp = new JXMultiSplitPane();
sp.setModel(new DefaultSplitPaneModel());
sp.add(left,DefaultSplitPaneModel.LEFT);
sp.add(top,DefaultSplitPaneModel.TOP);
sp.add(bottom,DefaultSplitPaneModel.BOTTOM);
编辑: 我了解您的无奈。我希望看到swingx的所有网站都从java.net的“崩溃”之前恢复到以前的状态。如此众多的好项目现在很难看。
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import org.jdesktop.swingx.JXMultiSplitPane;
import org.jdesktop.swingx.MultiSplitLayout.Divider;
import org.jdesktop.swingx.MultiSplitLayout.Leaf;
import org.jdesktop.swingx.MultiSplitLayout.Split;

public class JXMultiSplitPaneTest extends JPanel
{
    private static final long serialVersionUID = 1L;

    public JXMultiSplitPaneTest()
    {
        //Simple case: creates a split pane with three compartments
        JXMultiSplitPane sp = new JXMultiSplitPane();
        JPanel p1 = new JPanel();
        p1.setBackground(Color.PINK);
        JPanel p2 = new JPanel();
        p2.setBackground(Color.YELLOW);
        JPanel p3 = new JPanel();
        p3.setBackground(Color.CYAN);
        JPanel p4 = new JPanel();
        p4.setBackground(Color.RED);
        JPanel p5 = new JPanel();
        p5.setBackground(Color.BLUE);

        sp.setModel(new FiveHorizontalSplitPaneModel(true));
        sp.add(p1,FiveHorizontalSplitPaneModel.P1);
        sp.add(p2,FiveHorizontalSplitPaneModel.P2);
        sp.add(p3,FiveHorizontalSplitPaneModel.P3);
        sp.add(p4,FiveHorizontalSplitPaneModel.P4);
        sp.add(p5,FiveHorizontalSplitPaneModel.P5);

        setLayout(new BorderLayout());
        add(sp);
    }

    public static void main(String[] args)
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            @Override
            public void run()
            {
                JXMultiSplitPaneTest p = new JXMultiSplitPaneTest();
                JFrame f = new JFrame();
                f.setContentPane(p);
                f.setSize(800,600);
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                f.setVisible(true);
            }
        });
    }
}

class FiveHorizontalSplitPaneModel extends Split
{
    //5 possible positions
    public static final String P1 = \"1\";
    public static final String P2 = \"2\";
    public static final String P3 = \"3\";
    public static final String P4 = \"4\";
    public static final String P5 = \"5\";

    public FiveHorizontalSplitPaneModel()
    {
        this(false);
    }

    public FiveHorizontalSplitPaneModel(boolean isEqualyWeighted)
    {
        setRowLayout(true);
        Leaf p1 = new Leaf(P1);
        Leaf p2 = new Leaf(P2);
        Leaf p3 = new Leaf(P3);
        Leaf p4 = new Leaf(P4);
        Leaf p5 = new Leaf(P5);
        if(isEqualyWeighted)
        {
            p1.setWeight(0.2);
            p2.setWeight(0.2);
            p3.setWeight(0.2);
            p4.setWeight(0.2);
            p5.setWeight(0.2);
        }
        setChildren(p1,new Divider(),p2,p3,p4,p5);
    }
}
签出他们的代码并从那里去是非常有用的。对我来说非常有用的是DefaultSplitPaneModel的代码。我相信您会自己做到的。正如您在模型中所见,这并不难。该模型可以用三行编码,但是我添加了相等的加权功能。 乐于助人。玩得开心 :) 我建议您下载该库的代码,文档和jar,并将它们捆绑到NetBeans库中。然后,每当您想查看(例如)他们如何编码特定的类时,您都按住ѭ2the,然后在类名称上单击鼠标,它将带您进入其实现。始终对所有开源库都这样做。从一开始就这样做可以节省将来的大量时间。如果您需要帮助,我很乐意提供帮助。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...