Swing/TabTitleAlignment のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TabTitleAlignment へ行く。
- 1 (2010-10-11 (月) 18:19:33)
- 2 (2012-12-26 (水) 06:41:05)
- 3 (2013-09-03 (火) 01:30:18)
- 4 (2014-11-01 (土) 00:46:09)
- 5 (2014-11-25 (火) 03:03:31)
- 6 (2015-03-20 (金) 15:25:10)
- 7 (2017-02-16 (木) 21:19:52)
- 8 (2017-04-04 (火) 14:17:08)
- 9 (2017-11-02 (木) 15:34:40)
- 10 (2017-12-27 (水) 18:31:19)
- 11 (2019-05-22 (水) 19:35:38)
- 12 (2019-12-20 (金) 14:55:38)
- 13 (2021-06-22 (火) 17:54:35)
- 14 (2022-08-20 (土) 22:15:25)
TITLE:JTabbedPaneのTabTitleを左揃えに変更
Posted by terai at 2010-10-11
JTabbedPaneのTabTitleを左揃えに変更
JTabbedPaneのTabTitleをデフォルトに中央揃えから左揃えに変更します。
- &jnlp;
- &jar;
- &zip;
#screenshot
サンプルコード
class MyTabbedPaneUI extends javax.swing.plaf.metal.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;
//...
}
}
解説
- 上
- デフォルト(中央揃え)
- 中
- WindowsTabbedPaneUI#layoutLabel(...)などをオーバーライドして左揃えに変更
- 下
- JTabbedPaneのタブを等幅にしてタイトルをクリップ、ButtonTabComponent.javaを変更してタイトルを左揃え、TabButtonを右揃え
public ButtonTabComponent(final JTabbedPane pane) {
//unset default FlowLayout' gaps
//super(new FlowLayout(FlowLayout.LEFT, 0, 0));
super(new BorderLayout(0, 0));
//...
参考リンク
- JTabbedPaneのタブを等幅にしてタイトルをクリップ
- ButtonTabComponent.java
- OTN Discussion Forums : JTabbedPane title alignment