概要

JTabbedPaneTabTitleの揃えをデフォルトの中央揃えから左揃えに変更します。

サンプルコード

class MyTabbedPaneUI extends MetalTabbedPaneUI {
  @Override protected void layoutLabel(int tabPlacement,
                                       FontMetrics metrics, int tabIndex,
                                       String title, Icon icon,
                                       Rectangle tabRect, Rectangle iconRect,
                                       Rectangle textRect, boolean isSelected ) {
    textRect.x = textRect.y = iconRect.x = iconRect.y = 0;
    // ...
    SwingUtilities.layoutCompoundLabel((JComponent) tabPane,
                                       metrics, title, icon,
                                       SwingUtilities.CENTER,
                                       SwingUtilities.LEFT, //CENTER, <----
                                       SwingUtilities.CENTER,
                                       SwingUtilities.TRAILING,
                                       tabRect,
                                       iconRect,
                                       textRect,
                                       textIconGap);
    tabPane.putClientProperty("html", null);
    textRect.translate(tabInsets.left, 0); //<----
    textRect.width -= tabInsets.left + tabInsets.right;
    // ...
  }
}
View in GitHub: Java, Kotlin

解説

    • デフォルト(中央揃え)
    • WindowsTabbedPaneUI#layoutLabel(...)などをオーバーライドして左揃えに変更

参考リンク

コメント