为 JTabbedPane 创建自定义外观

Create Custom Look and Feel for a JTabbedPane

我正在尝试创建一个始终用选项卡填充组件顶部的 JTabbedPane。像这样:

现在是这样的:

这部分的代码:

    JTabbedPane tab = new JTabbedPane();
    tab.addTab("Items", items);
    tab.addTab("Categories", categories);
    setContentPane(tab);
    //Also tried to create a JTabbedPane class and see if i could remove the labels and manually add two buttons to the top but without success.

我希望选项卡尽可能多地用完 space,而不实际缩小面板的内容。 那么谁能告诉我如何自定义 JTabbedPane、外观和提要或只是选项卡本身才能做到这一点。

最简单的方法可能是创建您自己的组件:

  1. 创建一个使用 BorderLayout 的 "main" 面板。
  2. 创建一个使用 GridLayout 的面板,并将您的按钮添加到该面板。然后使用 BorderLayout.PAGE_START 将此面板添加到 "main" 面板。单击这些按钮中的每一个都会显示一个特定的面板。
  3. 创建第二个使用 CardLayout 的面板。使用 BorderLayout.CENTER 将此面板添加到 "main" 面板。这些面板中的每一个都代表一个选项卡。

另一种选择是查看 TabbedPaneUI 并找到一种方法来绘制每个选项卡并根据您的要求修改代码。