标题:[求助]如何在JFrame中加入背景图片?
只看楼主
huainie
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-8-7
 问题点数:0 回复次数:16 
[求助]如何在JFrame中加入背景图片?
如何在JFrame加入背景图片?哪位能指点一下吗??
搜索更多相关主题的帖子: 背景图片 JFrame 
2006-08-22 17:30
lgdcky
Rank: 2
等 级:论坛游民
威 望:5
帖 子:576
专家分:18
注 册:2006-8-5
得分:0 

能力有限,只知道可以改变背景颜色!


2006-08-23 13:50
huainie
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-8-7
得分:0 

背景我也知道的,可是我听说好像可在加入背景图片的, 不知道有哪位能帮小弟一下下咩?

2006-08-23 14:28
sunnyxue
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2004-12-13
得分:0 
看遍API也没有发现这个东东。

2006-08-23 15:13
lgdcky
Rank: 2
等 级:论坛游民
威 望:5
帖 子:576
专家分:18
注 册:2006-8-5
得分:0 

我在书上好看到了这种方法了!不过好象是要用数组来定义的,要不就是把它放到Panel中再放到JFrame中,那个命令好象是imageicon可能单词有拼错不过可以再搜索一下看看的!!


2006-08-24 12:50
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

最好的办法就是把JPanel加入到JFrame中,在后在JPanel中设置背景图片
只有重写paintComponent()就可以了
在JFrame中直接改背景图片是不太可能的


可惜不是你,陪我到最后
2006-08-24 13:56
ruihua
Rank: 1
等 级:新手上路
威 望:1
帖 子:235
专家分:0
注 册:2006-2-21
得分:0 

按照版主的方法,小弟试了一下,果真可以实现。
程序如下:
//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();
}
}


2006-08-24 19:14
ruihua
Rank: 1
等 级:新手上路
威 望:1
帖 子:235
专家分:0
注 册:2006-2-21
得分:0 

试着把上面的程序改为:
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的区别(红色部分)。


2006-08-24 19:20
huainie
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2006-8-7
得分:0 

受教了,偶试下!

2006-08-25 18:58
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 
最好是用paintComponent

可惜不是你,陪我到最后
2006-08-27 14:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-85541-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.092523 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved