---
title: JPanelの背景に画像を並べる
tags: [JPanel, Image]
author: aterai
pubdate: 2004-09-13T03:00:13+09:00
description: JPanelの背景に画像をタイル状に並べて表示します。
---
* 概要 [#be947c3e]
`JPanel`の背景に画像をタイル状に並べて表示します。

#download(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTH67VnIQI/AAAAAAAAAR8/JMqkIoI8n1Y/s800/BackgroundImage.png)

* サンプルコード [#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);
    }
  }
  super.paintComponent(g);
}
}}

* 解説 [#s57f4112]
上記のサンプルでは、`JPanel#setOpaque(false)`と背景を描画しないように設定したパネルで、`JPanel#paintComponent(Graphics)`メソッドをオーバーライドし、ここで`Image`を順番に並べて描画しています。

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

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