2

タブ付きペインを右下に配置する可能性はあるのでしょうか。コンテナを上下に配置したいと思います。右上から左にタブラベルが付いているコンテナ(問題なし/デフォルト)と、右から左に向かって下にある(これまでのところ良い)タブラベル。私が想像するデザインは次のとおりです。

| tab display                                 |
| tab display                                 |
| tab display                                 |
-----------------------------------------------
_________________________  | tab top | another|
| Bottom Tab| Second Tab|______________________
|                                              |

ええと、私のascy描画機能は限られていますが、あなたが写真を撮ってくれることを願っています。タブ付きペインにレイアウトマネージャーを追加してタブラベルをレイアウトできる方法はありますか?そのような例はどこにありますか?Goodlingは、タブ付きペインにCardLayoutと組み合わせてメニューバーを使用することを提案しました。ただし、タブのように見えるようにメニューバーを描画する方法がわかりません。(カスタム描画のためにスイングトレイルをのぞき込んだだけですが、一般的な可能性についてはそのままです。そうすると、スタイリング機能が失われます。今考えられる唯一のことは、コンテンツのないタブ付きペインを使用することです。イベントリスナーを介してカードレイアウトで別のコンテナを制御できるようにします。

助言がありますか?

PS:Java1.6でソリューションを実装する必要があります

4

2 に答える 2

5

この場合、JTabbedPaneのComponentOrientationを設定できます

import java.awt.ComponentOrientation;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;

public class TestTabbedPane extends JFrame {

    private static final long serialVersionUID = 1L;
    private JTabbedPane tabbedPane;

    public TestTabbedPane() {
        tabbedPane = new JTabbedPane();
        tabbedPane.setPreferredSize(new Dimension(300, 200));
        getContentPane().add(tabbedPane);
        JPanel panel = new JPanel();
        tabbedPane.add(panel, "null");
        JTextField one = new JTextField("one");
        tabbedPane.add(one, "one");
        JTextField two = new JTextField("two");
        //tabbedPane.add(two, "<html> T<br>i<br>t<br>t<br>l<br>e <br> 1 </html>");
        tabbedPane.add(two, "<html> Tittle  1 </html>");
        tabbedPane.setEnabledAt(2, false);
        tabbedPane.setTitleAt(2, "<html><font color="
                + (tabbedPane.isEnabledAt(2) ? "black" : "red") + ">"
                + tabbedPane.getTitleAt(2) + "</font></html>");
        tabbedPane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
        tabbedPane.setTabPlacement(JTabbedPane.BOTTOM);
    }

    public static void main(String args[]) {
        TestTabbedPane frame = new TestTabbedPane();
        frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
}
于 2012-06-06T06:38:53.913 に答える
0

利用可能な setTabPlacement(JTabbedPane.TOP) メソッドで確認すると、 TOP 、 LEFT 、 BOTTOM 、 RIGHT があります

http://www.exampledepot.com/egs/javax.swing/tabbed_TpTabLoc.html

于 2012-06-06T06:16:20.583 に答える