首先让我解释一下我的意思,以及我打算做什么,我已经知道(并且确实)为了修改 TabbedPane 中选项卡的外观,我需要扩展 XTabbedPaneUI ( X = Basic,或您希望扩展的任何 TabbedPaneUI)并覆盖 tabbedPaneUI 的某些方法,并将新 UI 设置为我的 tabbedPane 将使用的 UI (myTabbedPane.setUI(new MyNewTabbedPaneUI());
),例如,在 ui 扩展中我可以这样做:
@Override
protected void paintTabBackground( Graphics g, int tabPlacement,int tabIndex, int x, int y, int w, int h, boolean isSelected ) {
Color bgColor = tabPane.getBackgroundAt(tabIndex);
//tabPane is the way the BasicTabbedPaneUI makes reference to the JTabbedPane that is making use of him
//Do the painting of the tab background
}
方法内的第一行(也是唯一的一行)将返回我在要绘制的选项卡上设置的背景颜色(myTabbedPane.setBackgroundAt(0,desiredColor);
)并且然后我可以在我自己的 TabbedPaneUI 实现中使用该颜色,但是我应该做什么才能向每个选项卡添加更多信息,例如我想要绘制的背景百分比,或任何类型的信息(它不能)存储在 TabbedPaneUI 的实现中,因为它是动态的并且取决于每个单独的选项卡,所以我想,让我们在每个单独的选项卡中添加该信息,然后意识到我不知道哪种对象选项卡是,我无法在任何地方找到选项卡是什么类型的对象,恐怕java中没有选项卡对象这样的东西,所以任何帮助找到它,或者实现我的目标我想做什么? (向每个选项卡或 JTabbedPane 本身添加更多信息,以便在绘制选项卡时可以使用更多数据?)
P.S:我知道这可能有点令人困惑,所以如果对我试图解释的内容有任何疑问,请发表评论
最佳答案
我会考虑扩展 TabbedPaneUI
作为最后的手段。
可以设置选项卡的背景颜色,如图here .
您可以调整 Pane 的背景颜色,如图 here .
您可以完全替换选项卡组件,如
TabComponentsDemo
所示.
请注意,选项卡组件必须是不透明的。
关于java - 选项卡是哪种对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13346558/