背景我也知道的,可是我听说好像可在加入背景图片的, 不知道有哪位能帮小弟一下下咩?
我在书上好看到了这种方法了!不过好象是要用数组来定义的,要不就是把它放到Panel中再放到JFrame中,那个命令好象是imageicon可能单词有拼错不过可以再搜索一下看看的!!
最好的办法就是把JPanel加入到JFrame中,在后在JPanel中设置背景图片
只有重写paintComponent()就可以了
在JFrame中直接改背景图片是不太可能的
按照版主的方法,小弟试了一下,果真可以实现。
程序如下:
//abc.gif放在与源文件相同的路径下
import java.awt.*;
import javax.swing.*;
class MyPanel extends JPanel
{
ImageIcon img;
JButton btnTest1,btnTest2;
MyPanel()
{
img=new ImageIcon("abc.gif");
btnTest1=new JButton("btnTest1");
btnTest2=new JButton("btnTest2");
this.setLayout(new FlowLayout());
add(btnTest1);
add(btnTest2);
}
public void paintComponent(Graphics g)
{
g.drawImage(img.getImage(),0,0,this.getWidth(),this.getHeight(),this);
}
}
class mainApp
{
public static void main(String[] args)
{
JFrame fm=new JFrame("BackGround Image Test");
MyPanel panel=new MyPanel();
fm.getContentPane().add(panel);
fm.show();
}
}
试着把上面的程序改为:
import java.awt.*;
import javax.swing.*;
class MyPanel extends JPanel
{
ImageIcon img;
JButton btnTest1,btnTest2;
MyPanel()
{
img=new ImageIcon("abc.gif");
btnTest1=new JButton("btnTest1");
btnTest2=new JButton("btnTest2");
this.setLayout(new FlowLayout());
add(btnTest1);
add(btnTest2);
}
public void paint(Graphics g) // Changed
{
g.drawImage(img.getImage(),0,0,this.getWidth(),this.getHeight(),this);
}
}
class mainApp
{
public static void main(String[] args)
{
JFrame fm=new JFrame("BackGround Image Test");
MyPanel panel=new MyPanel();
fm.getContentPane().add(panel);
fm.show();
}
}
比较一下,你会发现Swing中paint与paintComponent的区别(红色部分)。
受教了,偶试下!