• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JTabbedPaneの余白に文字列を表示
#navi(../)
*JTabbedPaneの余白に文字列を表示 [#d14a047c]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2005-12-26~
更新日:&lastmod;

#contents

**概要 [#u6b5c68a]
JTabbedPaneの右側の余白に文字列を表示します。[[Java Forums - JTabbedPane with non-tabbed text>http://forum.java.sun.com/thread.jspa?threadID=605786]]の投稿からソースコードを引用しています。

http://terai.xrea.jp/swing/tabbedpanewithtext/screenshot.png
#screenshot

**サンプルコード [#f6205526]
 tab = new JTabbedPane() {
   public void paintComponent(Graphics g) {
     super.paintComponent(g);
     String text = "←ちょっとしたタブの説明など";
     FontMetrics fm = getFontMetrics(getFont());
     int stringWidth = fm.stringWidth(text)+10;
     int x = getSize().width-stringWidth;
     Rectangle lastTab = getUI().getTabBounds(this, getTabCount()-1);
     int tabEnd = lastTab.x + lastTab.width;
     if(x<tabEnd) x = tabEnd;
     g.drawString(text, x+5, 18);
   }
 };

-[[サンプルを起動>http://terai.xrea.jp/swing/tabbedpanewithtext/sample.jnlp]]
-[[jarファイル>http://terai.xrea.jp/swing/tabbedpanewithtext/sample.jar]]
-[[ソース>http://terai.xrea.jp/swing/tabbedpanewithtext/src.zip]]
-&jnlp;
-&jar;
-&zip;

**解説 [#t35e18f2]
JTabbedPane#paintComponentメソッドをオーバーライドして、タブコンポーネントの右側の余白に文字列を描画しています。

右端に十分な余白が無く、文字列を描画するとタブ上に重なってしまう場合は、最後のタブの横から文字列を描画するようになっています。

**参考リンク [#w33aebb6]
-[[Java Forums - JTabbedPane with non-tabbed text>http://forum.java.sun.com/thread.jspa?threadID=605786]]

**コメント [#q1e57b08]
#comment