Swing/BackgroundImage のバックアップの現在との差分(No.1)
#navi(contents-page-name): No such page: ST
FrontPage
2023-05-21 (日) 13:43:14
概要
JPanel
の背景に画像をタイル状に並べて表示します。
Screenshot
Advertisement
サンプルコード
#spanend
#spanadd
private final Image image;
#spanend
#spanadd
@Override protected void paintComponent(Graphics g) {
#spanend
Dimension d = getSize();
int w = image.getWidth(this);
int h = image.getHeight(this);
for (int i = 0; i * w < d.width; i++) {
for (int j = 0; j * h < d.height; j++) {
g.drawImage(image, i * w, j * h, w, h, this);
}
}
super.paintComponent(g);
#spanadd
}
#spanend
#spanadd
View in GitHub: Java, Kotlinpublic 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, null); } } //setOpaque(false); super.paintComponent(g); }
解説
上記のサンプルでは、JPanel#setOpaque(false)
でパネルの背景を透過するよう設定し、JPanel#paintComponent(Graphics)
メソッドをオーバーライドしてこの内部でImage
を順番に並べて描画しています。
参考リンク
- TexturePaintを使って背景に画像を表示
- 画像から
TexturePaint
を作成して描画
- 画像から
- JTextAreaの背景に画像を表示
- ひとつの画像をパネル中央に表示