gpt4 book ai didi

java - 为什么自定义选项卡的边框没有覆盖 JTabbedPane 中的标准选项卡边框?

转载 作者:行者123 更新时间:2023-12-02 05:53:20 25 4
gpt4 key购买 nike

我的自定义选项卡组件的边框不覆盖选项卡本身的边框。

相反,我的边框仅围绕选项卡的文本。要查看问题所在,请运行此演示:

public class TabBoundsDemo extends JTabbedPane {
Border lineBorder = BorderFactory.createLineBorder(Color.RED, 2);

public TabBoundsDemo() {
super(TOP, WRAP_TAB_LAYOUT);

for (int i = 0; i < 16; i++) {
TabComponent tab = new TabComponent("tab " + i);
super.addTab(null, new JLabel("label" + i));
super.setTabComponentAt(i, tab);
}

super.setPreferredSize(new Dimension(300, 300));

}

class TabComponent extends JLabel {

public TabComponent(String text) {
super(text);
super.setBorder(lineBorder);
super.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
int tabIndex = getTabIndexAtMouseEvent(e);
System.out.println("tabIndex=" + tabIndex);

}
});
}
}

public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new TabBoundsDemo());
frame.pack();
frame.setVisible(true);
}
}

所以我希望我的红色边框位于标准选项卡边框的位置。目前仅围绕标题。

谢谢!

最佳答案

在构造函数中“super(TOP, WRAP_TAB_LAYOUT);”下方添加以下代码让我们知道这是否有帮助。

 setUI( new BasicTabbedPaneUI() {
@Override
protected void installDefaults() {
super.installDefaults();
highlight = Color.pink;
lightHighlight = Color.green;
shadow = Color.red;
darkShadow = Color.cyan;
focus = Color.yellow;
}
} );

关于java - 为什么自定义选项卡的边框没有覆盖 JTabbedPane 中的标准选项卡边框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23339454/

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