java - 如果只有一个选项卡存在,有没有办法隐藏 JTabbedPane 的选项卡栏?

标签 java user-interface swing jtabbedpane

我想要一个类似于例如Firefox,其中可用选项卡列表仅在至少存在两个选项卡时才会显示。

我还没有找到类似的东西。

我最好的想法是手动更改布局:

  • 如果只有一个组件,只需将其添加到周围的面板
  • 如果添加了一个组件,请从周围的面板中删除该组件,添加一个 JTabbedPane 并将之前的和新的组件都添加到该面板。
  • 如果一个组件被移除并且 Pane 中只剩下一个组件,则移除该 Pane 并添加包含的组件。

虽然这可能会奏效,但感觉就像是一种 hack 或解决方法......

有更好的主意吗?

理想情况下,一个解决方案应该在 Java 1.5 和 1.6 中工作...但我也很高兴只有 1.6 的解决方案。

最佳答案

您可以覆盖计算选项卡按钮区域高度的 UI 方法,当只有一个选项卡时强制高度为 0:

tabbed_pane.setUI(new BasicTabbedPaneUI() {  
    @Override  
    protected int calculateTabAreaHeight(int tab_placement, int run_count, int max_tab_height) {  
        if (tabbed_pane.getTabCount() > 1)
            return super.calculateTabAreaHeight(tab_placement, run_count, max_tab_height);  
        else  
            return 0;  
    }  
});  

关于java - 如果只有一个选项卡存在,有没有办法隐藏 JTabbedPane 的选项卡栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/942500/

相关文章:

java - JTextArea setText 不工作

java - Clirr 的任何替代品(与旧版本的二进制和源代码兼容性)?

java - 当尝试在静态方法调用中模拟静态方法调用时,Powermock 会调用初始方法

java - java中如何将一个字符串数组的元素用作另一个字符串数组的变量?

java - 迁移到 Spring Boot 2 - 安全编码密码看起来不像 BCrypt

python - 用于正确并排放置按钮的 tkinter 布局设置的说明

java - 追加来自另一个类的 Textarea 结果

linux - GTK 和 Qt 的功能区界面

android - 如何创建等宽的按钮?

java - 如何防止绘制的形状在 Java 中消失?