1

JPanel に JTabbedPane (上部に水平タブがある) があり、この JTabbedPane のタブを JPanel の幅全体に合わせて、タブが 1 つしかない場合、タブが幅全体を埋めるようにします。 ; 2 つのタブがある場合、各タブは正確に半分を埋めます。

カスタム JComponent をタブのタイトルとして使用し、PreferredSize を設定しても解決策はありません。JTabbedPanel がタイトル コンポーネントの周りにある種の境界線を配置しているように見えるからです。

JTabbedPane の一部/すべてを拡張および/または書き換えるよりも簡単な解決策はありますか?

(タブについて話しているときは、コンポーネント自体ではなく、クリックして表示されるコンポーネントを切り替えることができるこれらのナビゲーション コンポーネントを参照することを追加する必要があるかもしれません。)

4

1 に答える 1

-1

このコードをテストします:

public class Tabs extends javax.swing.JFrame {


    public Tabs() {
        initComponents();
    }


       private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel2 = new javax.swing.JPanel();
        jPanel3 = new javax.swing.JPanel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setLayout(new java.awt.BorderLayout());

        jPanel2.setLayout(new java.awt.BorderLayout());


        jTabbedPane1.addTab("tab1", jPanel2);


        jPanel3.setLayout(new java.awt.BorderLayout());


        jTabbedPane1.addTab("tab2", jPanel3);

        jPanel1.add(jTabbedPane1, java.awt.BorderLayout.CENTER);

        add(jPanel1);

        pack();
    }


    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Tabs().setVisible(true);
            }
        });
    }


    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JTabbedPane jTabbedPane1;
}
于 2011-02-06T13:17:06.843 に答える