swing jpanel图片平铺

本文介绍了一个使用 Java Swing 实现的 JPanel 子类,该子类能够将指定的图像作为平铺背景显示在面板上。通过重写 paintComponent 方法实现图像的连续平铺效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.awt.Graphics;
import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JPanel;

public class BackgroundImagePanel extends JPanel {


 // 图片
 URL imgURL = Util.class.getClassLoader().getResource("images/bg_image.png");

 // 重写的绘图函数,绘制平铺图片
 public void paintComponent(Graphics g) {
  super.paintComponent(g);

  // 绘制平铺图片背景
  ImageIcon icon = new ImageIcon(imgURL);

  // 每一副图像的位置坐标
  int x = 0;
  int y = 0;

  // 平铺背景图片
  while (true) {
   // 绘制图片
   g.drawImage(icon.getImage(), x, y, this);

   // 如果绘制完毕,退出循环
   if (x > getSize().width && y > getSize().height)
    break;

   // 如果绘完一行,换行绘制
   if (x > getSize().width) {
    x = 0;
    y += icon.getIconHeight();
   }
   // 如果在当前行,得到下一个图片的坐标位置
   else
    x += icon.getIconWidth();
  }
 }
}

public static void main(String[] args){
        BackgroundImagePanel back = new BackgroundImagePanel();
        JFrame frame = new JFrame();
        frame.add(back);
        frame.setSize(new Dimension(420, 150));
        frame.setVisible(true);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值