我正在创建我自己的自定义 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 时遇到麻烦的原因是拉伸(stretch) Tab 的区域,对于 ICON,也许有一种方法可以将文本居中放置在 BufferedImage 上,有什么想法吗?

最佳答案

对于自定义 tabbedPane,您应该能够创建具有设置对齐方式的标签,然后将它们添加到 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);

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

编辑:
这可能是相关的:
Aligning icon to the left in JTabbedPane in Nimbus Look and Feel

关于Java JTabbedPane 将标题文本居中对齐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21869908/

10-14 10:41