为 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、外观和提要或只是选项卡本身才能做到这一点。
最简单的方法可能是创建您自己的组件:
- 创建一个使用 BorderLayout 的 "main" 面板。
- 创建一个使用 GridLayout 的面板,并将您的按钮添加到该面板。然后使用
BorderLayout.PAGE_START
将此面板添加到 "main" 面板。单击这些按钮中的每一个都会显示一个特定的面板。
- 创建第二个使用
CardLayout
的面板。使用 BorderLayout.CENTER
将此面板添加到 "main" 面板。这些面板中的每一个都代表一个选项卡。
另一种选择是查看 TabbedPaneUI
并找到一种方法来绘制每个选项卡并根据您的要求修改代码。
我正在尝试创建一个始终用选项卡填充组件顶部的 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、外观和提要或只是选项卡本身才能做到这一点。
最简单的方法可能是创建您自己的组件:
- 创建一个使用 BorderLayout 的 "main" 面板。
- 创建一个使用 GridLayout 的面板,并将您的按钮添加到该面板。然后使用
BorderLayout.PAGE_START
将此面板添加到 "main" 面板。单击这些按钮中的每一个都会显示一个特定的面板。 - 创建第二个使用
CardLayout
的面板。使用BorderLayout.CENTER
将此面板添加到 "main" 面板。这些面板中的每一个都代表一个选项卡。
另一种选择是查看 TabbedPaneUI
并找到一种方法来绘制每个选项卡并根据您的要求修改代码。