gpt4 book ai didi

java - 如何减少 Java Swing BasictabbedPaneUI 实现中的 textRect 矩形?

转载 作者:行者123 更新时间:2023-12-02 05:19:57 27 4
gpt4 key购买 nike

我正在使用 BasicTabbedPaneUIJTabbedPane 实现我自己的外观和感觉。正在关注this tutorial ,我想在选项卡末尾添加关闭按钮。

到目前为止,我已成功在选项卡右侧绘制关闭图标,但它覆盖了我的选项卡标题。因此,我想减少重写方法paintTab()中用于textRect参数的矩形的宽度。

我已经尝试过,但没有效果:

@Override
protected void paintTab(Graphics g, int tabPlacement, Rectangle[] rects, int tabIndex,
Rectangle iconRect, Rectangle textRect) {

//reduce textrect width to leave space for close icon
textRect.setSize(textRect.width - (2 * WIDTHDELTA + icon.getIconWidth()), textRect.height);

super.paintTab(g, tabPlacement, rects, tabIndex, iconRect, textRect);

Rectangle tabRect = rects[tabIndex];

// Calculate the coordinates where the button should be.
int dx = tabRect.x + tabRect.width - icon.getIconWidth() - WIDTHDELTA;
int dy = tabRect.y + (tabRect.height - icon.getIconHeight()) / 2;

//Paint the Close button
icon.paintIcon(tabPane, g, dx, dy);
}

如何以及在哪里可以缩小用于绘制选项卡文本的矩形?

最佳答案

尝试使用 BasicTabbedPaneUI 的字段

protected Insets tabInsets;
protected Insets selectedTabPadInsets;
protected Insets tabAreaInsets;
protected Insets contentBorderInsets;

tabInsets 用于您可以尝试覆盖的方法

protected int calculateTabWidth(int tabPlacement, int tabIndex, FontMetrics metrics)

关于java - 如何减少 Java Swing BasictabbedPaneUI 实现中的 textRect 矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26589225/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com