欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jpanel设置背景图片的二个小例子

程序员文章站 2024-02-26 16:40:46
这个jpanel可以动态加载一个图片做背景复制代码 代码如下:import java.awt.graphics;import java.awt.image;import j...

这个jpanel可以动态加载一个图片做背景

复制代码 代码如下:

import java.awt.graphics;
import java.awt.image;
import java.awt.toolkit;

import javax.swing.jpanel;

/**
 * 一个可以动态加载一个图片做背景的jpanel
 */
public class imagepanel extends jpanel{
 image im;
 //构造函数制定jpanel的大小
 public imagepanel(image im) {
  this.im = im;
  //希望该panel的大小事自适应的
  int width = toolkit.getdefaulttoolkit().getscreensize().width;
  int height = toolkit.getdefaulttoolkit().getscreensize().height;
  this.setsize(width,height);
 }
 //画出背景
 @override
 protected void paintcomponent(graphics g) {
  // 清屏
  super.paintcomponent(g);
  g.drawimage(im, 0, 0, this.getwidth(), this.getheight(), this);
 }
}

jpanel面板中设置背景图片的另外一个例子

复制代码 代码如下:

import java.awt.*;
import javax.swing.*;

public class demo extends jframe
{
    public demo()
    {
     super("title");
     newpanel p = new newpanel();
     this.getcontentpane().add(p); //将面板添加到jframe上
     this.setsize(596,298); //初始窗口的大小
     this.setlocationrelativeto(null); //设置窗口居中
     this.setdefaultcloseoperation(jframe.exit_on_close);
     this.setvisible(true);
    }

    public static void main(string[] args)
    {
     new demo();
    }

    class newpanel extends jpanel
   {
     public newpanel()
     {

     }

     public void paintcomponent(graphics g)
     {
        int x=0,y=0;
        java.net.url imgurl=getclass().getresource("test.jpg");

        //test.jpg是测试图片,与demo.java放在同一目录下
        imageicon icon=new imageicon(imgurl);
        g.drawimage(icon.getimage(),x,y,getsize().width,getsize().height,this);
        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();
        }
     }
   }
}