java - 选项卡是哪种对象?

标签 java swing user-interface paint jtabbedpane

首先让我解释一下我的意思,以及我打算做什么,我已经知道(并且确实)为了修改 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所示.

请注意,选项卡组件必须是不透明的。

imqge

关于java - 选项卡是哪种对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13346558/

相关文章:

java - 从列表中删除重复元素

java - 为什么 java.util.Set 不包含值 getter ?有替代品吗?

java - 向图像添加 Action 监听器

c - 尝试用C做GUI

java - Java 中使用继承的基本窗口和扩展窗口

java - JLabel 背景图片...奇怪的行为?

java - 新手 keytool 命令——如何更新已添加到 keystore 的证书?

java - 无法使用 java 命令设置 Jenkins war

java - 保存数据并创建一个不包含该数据的新面板

Java 键适配器键事件错误...需要分号而不是括号?