0

JTabbedPanes をネストすると、親と子の間で顕著な色の変化が見られます。

この問題を説明するスクリーンショットを次に示します。

ここに代替テキストが入ります。

移行をスムーズにするにはどうすればよいですか?

他のレイアウトやコンポーネントを使用するという点で、代替手段はありますか?

4

1 に答える 1

1

それJTabbedPaneは透明ではないからです。setOpaque(false)タブ付きペインで呼び出してみてください。

JTabbedPane outer = new JTabbedPane();
outer.setOpaque(false);
// ...
// creating inner pane "Modificar"
JTabbedPane modificar = new JTabbedPane();
modificar.setOpaque(false);
outer.addTab("Modificar", modificar);

ただし、すべてのルック アンド フィールで機能するとは限りません。たとえば、GTK L&F は へsetOpaque()の呼び出しを無視しますJToolbar

別の代替手段は、の代わりに単一にグループ化された透明なJPanelwithFlowLayoutおよびを使用することです。JToggleButtonButtonGroupJTabbedPane

private void initComponents() {
    JTabbedPane outer = new JTabbedPane();
    outer.setOpaque(false);
    // ...

    JPanel innerPane = new JPanel();
    innerPane.setOpaque(false);
    innerPane.setLayout(new FlowLayout());

    ButtonGroup group = new ButtonGroup();
    addButton(innerPane, group, new JToggleButton("alta"));    
    addButton(innerPane, group, new JToggleButton("Modificar")).setSelected(true);
    addButton(innerPane, group, new JToggleButton("compraTarifa"));

    outer.addTab("Socios", innerPane);

    // ...
}

private static <T extends AbstractButton> T addButton(Component parent, ButtonGroup group, T btn) {
    group.add(btn);
    parent.add(btn);
    return btn;
}
于 2014-04-17T23:17:26.163 に答える