2

JXMultiSplitPaneのjavadocを見つけましたが、わかりません。これを使用して、スプリッターを間に挟んで水平に並べられた5つのJPanelを表示するにはどうすればよいですか?

4

1 に答える 1

4

あなたの質問に正確に答えることはできませんが、お役に立てば幸いです。

このコードをチェックしてください。コードは、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);

編集: 私はあなたの欲求不満を理解しています。java.netのbl**dy'crash'の前から、swingxのすべてのWebサイトが以前の状態に戻ることを望んでいます。非常に多くの素晴らしいプロジェクトが今ではとても見づらいです。

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, new Divider(),
                p3, new Divider(), p4, new Divider(), p5);
    }
}

彼らのコードをチェックしてそこから行くことは非常に役に立ちます。DefaultSplitPaneModelのコードは私にとって非常に便利でした。自分でやったと思います。モデルでわかるように、結局のところそれほど難しくはありませんでした。モデルは3行でコーディングできますが、均等均等化機能を追加しました。

助ける喜び。楽しむ :)

そのライブラリのコード、ドキュメント、およびjarをダウンロードして、NetBeansライブラリにバンドルすることをお勧めします。次に、たとえば、特定のクラスがどのようにコーディングされているかを確認したい場合は、を押したままCTRLクラス名をクリックすると、その実装に移動します。すべてのオープンソースライブラリに対して常にそうしてください。開始時にそうすることで、将来的に多くの時間を節約できます。あなたがそれで手を必要とするならば、私は助けてうれしいです。

于 2011-05-25T09:40:53.900 に答える