• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JPanelの背景に画像を並べる
#navi(../)
#tags()
#tags(JPanel, Image)
RIGHT:Posted by &author(aterai); at 2004-09-13
*JPanelの背景に画像を並べる [#be947c3e]
JPanelの背景に画像をタイル状に並べて表示します。
* JPanelの背景に画像を並べる [#be947c3e]
`JPanel`の背景に画像をタイル状に並べて表示します。

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

//#screenshot
#ref(http://lh3.ggpht.com/_9Z4BYR88imo/TQTH67VnIQI/AAAAAAAAAR8/JMqkIoI8n1Y/s800/BackgroundImage.png)
#ref(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTH67VnIQI/AAAAAAAAAR8/JMqkIoI8n1Y/s800/BackgroundImage.png)

**サンプルコード [#t9b8baf0]
** サンプルコード [#t9b8baf0]
#code(link){{
@Override public void paintComponent(Graphics g) {
  Dimension d = getSize();
  int w = bgimage.getIconWidth();
  int h = bgimage.getIconHeight();
  for(int i=0;i*w<d.width;i++) {
    for(int j=0;j*h<d.height;j++) {
      g.drawImage(bgimage.getImage(), i*w, j*h, w, h, this);
    }
  }
//for(int x=0;x<d.width;x+=w) {
//  for(int y=0;y<d.height;y+=h) {
//    g.drawImage(bgimage.getImage(), x, y, w, h, this);
//  }
//}
  super.paintComponent(g);
}
}}

**解説 [#s57f4112]
このサンプルでは、単純にImage(画像)を順番に並べて描画しています。コンポーネントの背景色を透明にしてから、super.paintComponent(g)する必要があります。
** 解説 [#s57f4112]
このサンプルでは、単純に`Image`を順番に並べて描画しています。コンポーネントの背景色を透明にしてから、`super.paintComponent(g)`する必要があります。

**参考リンク [#w44c5faa]
-[[TexturePaintを使って背景に画像を表示>Swing/TexturePaint]]
--同様に画像をタイル状に並べて表示
-[[JTextAreaの背景に画像を表示>Swing/CentredBackgroundBorder]]
--ひとつの画像を中央に表示
** 参考リンク [#w44c5faa]
- [[TexturePaintを使って背景に画像を表示>Swing/TexturePaint]]
-- 同様に画像をタイル状に並べて表示
- [[JTextAreaの背景に画像を表示>Swing/CentredBackgroundBorder]]
-- ひとつの画像を中央に表示

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