java中如何实现背景图片!!

时间:2023-01-28 15:43:48
java中如何实现背景图片,就象DELPHI的背景图片一样!

2 个解决方案

#1


没懂楼主的意思,因为没有用过delphi
不过java里面实现一个有背景图片的窗体很简单,
比如,你需要一个有背景图片的JPanel,就可以按照下面的方法做:

import com.ynchun.project.timer.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;

public class ImagePanel extends JPanel {
public ImagePanel (ImageIcon imageIcon) {
setOpaque(false);
_img = imageIcon.getImage();
setPreferredSize(new Dimension(imageIcon.getIconWidth(),imageIcon.getIconHeight()));
}

protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(_img,0,0,this);
}
        
        public void setBorder(Border b) {
            super.setBorder(b);
        }
        
        public void setImage(ImageIcon img) {
            if (img != null) {
                this._img = img.getImage();
            }
        }
private Image _img;
}
当然,如果希望实现一个有背景图片的JWindow,JFrame之类的,方法也相同,
可以重载paintComponent方法来实现,或者用别的方法,比如先做一个有背景图片的
JPanel,把这个JPanel加到JWindow,或者JFrame的container里面,然后其他的组件就
加到这个JPanel上面.这个方法也一样

#2


你想给谁加背景图片就在谁的paint函数中用
g.drawImage画图片。

画什么就是什么。

可以参考代码:

ImageIcon ii = new ImageIcon("d:\\test.jpg");
Image img = ii.getImage();
ImageObserver imgobs = ii.getImageObserver();

g.drawImage(img,0,0,img.getWidth(imgobs),img.getHeight(imgobs),0,0,this.getWidth(),this.getHeight(),imgobs);

#1


没懂楼主的意思,因为没有用过delphi
不过java里面实现一个有背景图片的窗体很简单,
比如,你需要一个有背景图片的JPanel,就可以按照下面的方法做:

import com.ynchun.project.timer.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;

public class ImagePanel extends JPanel {
public ImagePanel (ImageIcon imageIcon) {
setOpaque(false);
_img = imageIcon.getImage();
setPreferredSize(new Dimension(imageIcon.getIconWidth(),imageIcon.getIconHeight()));
}

protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(_img,0,0,this);
}
        
        public void setBorder(Border b) {
            super.setBorder(b);
        }
        
        public void setImage(ImageIcon img) {
            if (img != null) {
                this._img = img.getImage();
            }
        }
private Image _img;
}
当然,如果希望实现一个有背景图片的JWindow,JFrame之类的,方法也相同,
可以重载paintComponent方法来实现,或者用别的方法,比如先做一个有背景图片的
JPanel,把这个JPanel加到JWindow,或者JFrame的container里面,然后其他的组件就
加到这个JPanel上面.这个方法也一样

#2


你想给谁加背景图片就在谁的paint函数中用
g.drawImage画图片。

画什么就是什么。

可以参考代码:

ImageIcon ii = new ImageIcon("d:\\test.jpg");
Image img = ii.getImage();
ImageObserver imgobs = ii.getImageObserver();

g.drawImage(img,0,0,img.getWidth(imgobs),img.getHeight(imgobs),0,0,this.getWidth(),this.getHeight(),imgobs);