• 追加された行はこの色です。
  • 削除された行はこの色です。
#navi(../)
*JTextAreaに表示できる行数を制限 [#e59bb955]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2006-02-27~
更新日:&lastmod;

#contents

**概要 [#g22f601f]
ドキュメントのサイズを一定にして、JTextAreaなど表示できる行数を制限します。[[Java Forums - How can I use TextArea with Background Picture ?>http://forum.java.sun.com/thread.jspa?forumID=57&threadID=567904]]のようにJava Forumでは定番のコードを引用しています。

#screenshot

**サンプルコード [#c5694631]
 class CentredBackgroundBorder implements Border {
   private final BufferedImage image;
   public CentredBackgroundBorder(BufferedImage image) {
     this.image = image;
   }
   public void paintBorder(Component c, Graphics g,
       int x, int y, int width, int height) {
     x += (width-image.getWidth())/2;
     y += (height-image.getHeight())/2;
     ((Graphics2D) g).drawRenderedImage(image, 
       AffineTransform.getTranslateInstance(x,y));
   }
   public Insets getBorderInsets(Component c) {
     return new Insets(0,0,0,0);
   }
   public boolean isBorderOpaque() {
     return true;
   }
 }

-&jnlp;
-&jar;
-&zip;

**解説 [#z741df6b]
画像を中央に表示するようにしたBorderを作成し、これをViewportのBorderとして設定しています。上記のサンプルでは、JTextAreaの背景に適用していますが、その他のJComponentでも同様に使用することが出来ます。

**参考リンク [#k26904ee]
-[[Java Forums - How can I use TextArea with Background Picture ?>http://forum.java.sun.com/thread.jspa?forumID=57&threadID=567904]]
-[[デジタル出力工房 絵写楽>http://www.bekkoame.ne.jp/~bootan/free2.html]]

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