嵌套 JTabbedPanes 时,父级和子级之间有明显的颜色变化。
这是一个截图来说明这个问题:
您将如何使过渡更加顺畅?
在使用其他布局或组件方面是否有任何替代方案?
嵌套 JTabbedPanes 时,父级和子级之间有明显的颜色变化。
这是一个截图来说明这个问题:
您将如何使过渡更加顺畅?
在使用其他布局或组件方面是否有任何替代方案?
那是因为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()
对 a 的调用JToolbar
。
另一种选择是使用透明JPanel
的FlowLayout
和JToggleButton
s 组合成一个ButtonGroup
而不是 a JTabbedPane
,例如
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;
}