将Java JTabbedPane的标题文本居中对齐

3
我正在创建自己的自定义JTabbedPane对象,使用一个简单的继承了JTabbedPane的小类。我已经完成了其中的很大部分工作,但最近发现一个问题,即选项卡标题文本不会自动居中。而我想要它居中。下面是它的样子:

仅想象选项卡未居中

正如我所说,它只是JTabbedArea的扩展,就像这样:
private static final long serialVersionUID = 1L;
private String name;
private final int width = 150, height = 50;
public ColoredTabs(String paneName,  int tabPlacement, String[] names, Color[] colors, JComponent[] components){
    super(tabPlacement);
    this.name = paneName;
    if(names.length != components.length || names.length != colors.length || components.length != colors.length){
        throw new IllegalArgumentException("The arguments for COMPONENTS, COLORS, and NAMES do not match up for '"+this.name+"'...");
    }
    setFont(Resources.getFont());
    setBackground(Color.YELLOW);
    for(int i = 0; i < names.length; i++){
        addTab(names[i], components[i]);
        setBackgroundAt(i, colors[i]);
        setIconAt(i, new ImageIcon(new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB)));

    }
}

我制作BufferedImage的原因是为了拉伸Tab的区域,对于图标,也许有一种方法可以将文本居中显示在BufferedImage上,有什么想法吗?

1个回答

4

如果您希望创建一个自定义的选项卡面板,您需要首先创建具备设定对齐方式的标签,然后将它们添加到 jTabbedPane 上,类似以下代码:

//Create new label to be used as a tab name
JLabel tabLabel = new JLabel("Tab", JLabel.CENTER);
//add new label at set location
jTabbedPane.setTabComponentAt(0, tabLabel);

如需更多帮助,请展示您如何创建选项卡。

编辑: 这可能与以下内容相关: 在Nimbus外观中将图标左对齐到JTabbedPane


没错,最好的方法是在区域中放置一个JLabel,现在我只是使用JLabel来拉伸Tab的区域,谢谢。 - tanishalfelven

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接