求指教啊!java中如何实现图片背景的切换 就是说输入不同的景点 在子窗口中 显示相应的图片背景的

finalJFrameff=newJFrame("查询景点");//定义一个名为"查询"的JFrame((JPanel)ff.getContentPane()).setO... final JFrame ff=new JFrame("查询景点"); //定义一个名为"查询"的JFrame

((JPanel)ff.getContentPane()).setOpaque(false);
String r="D://1//11.jpg";
if(str11=="大礼堂") r="D://1//1.jpg";
else if(f1.getText().trim()=="综合楼") r="D://1//2.jpg";
else if(f1.getText().trim()=="图书馆") r="D://1//3.jpg";
else if(f1.getText().trim()=="艺术学院") r="D://1//4.jpg";
else if(f1.getText().trim()=="碧云湖") r="D://1//5.jpg";
else if(f1.getText().trim()=="马俊武博士") r="D://1//6.jpg";
else if(f1.getText().trim()=="网络大楼") r="D://1//7.jpg";
else if(f1.getText().trim()=="体育中心") r="D://1//8.jpg";
else if(f1.getText().trim()=="操场") r="D://1//9.jpg";
else if(f1.getText().trim()=="东体育馆") r="D://1//10.jpg";
ImageIcon img = new ImageIcon(r);
JLabel background = new JLabel(img);
ff.getLayeredPane().add(background, new Integer(Integer.MIN_VALUE));
background.setBounds(0, 0, 420, 360);
这是我的一段代码 好像就执行到 String r="D://1//11.jpg";
就不会动了 图片不会切换....求指教啊
展开
 我来答
匿名用户
2011-05-24
展开全部

试试这个图片切换

有12345数字一起切换

有小图大图一起切换

里面有教程和源码

参考资料: http://www.blueidea.com/common/shoutbox/redir.asp?6=u&id=11341

予恋寻十1K
2011-05-09 · TA获得超过941个赞
知道小有建树答主
回答量:977
采纳率:50%
帮助的人:851万
展开全部
你这样情况应该用switch更好.
if(str11=="大礼堂") r="D://1//1.jpg";
else{
switch(f1.getText().trim()){
case "":
break;
case "";
break;
}
}
还有就是Image对象应该要定义到方法外部.
每次改变是要重新实例化Image对象.
追问
不行啊 我把那个改了之后   
if(str11=="大礼堂") r="D://1/1.jpg";
else{
switch(f1.getText().trim()){
case "综合楼": r="D://1/2.jpg";break;
}}
switch后面括号里的就出错了.....
追答
不会呀!是什么错呢!加百度Hi聊吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
调皮的小泥鳅
2011-05-09 · 超过23用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:65.1万
展开全部
路径写错了 吧 /这样的斜线只需要一个 转义符 = 反斜杠字符 (\)
追问
我改成单斜线试了下 还是那样的 背景图片还是那个11.jpg 的
追答
我对switch说明下  

switch后面的括号里面只能放int类型的值,注意是只能放int类型,但是放byte,short,char类型的也可以是因为byte,short,char可以自动提升(自动类型转换)为int,不是说就可以放它们,说白了,你放的byte,short,char类型,然后他们会自动转换为int类型(宽化,自动转换并且安全),其实最后放的还是int类型!long不行,是因为long类型不能自动转换为int类型,注意,我说的是自动转换,或者叫隐式转换,或者有些时候叫自动提升,都是一个意思!给你解释一下原理:Java中8种基本数据类型,boolean类型不参与转换,任何类型不能转换为boolean型,boolean也不能转换为其他类型,所以剩下7种,按照他们的表数范围,(也就是能表示的最大的数的大小,比如char是0到65535,byte是-128到正127)从小到大,排序,依次为:byte、short、char、int、long、float、double规则:

1.小的往大的转换(宽化),自动转换,有些时候就会自动提升为大的类型,比如switch中

2.大的往小的转换(窄化)必须强制类型转换所以long不行,要想行就得强转如(int)long

switch后面括号中只能探测到int类型数,同理,float、double也是不行的,要想行就强转
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hai046
2011-05-09 · 超过18用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:50.9万
展开全部
??没明白你说的什么
我的思路:
添加一个按钮(或其他)事件监听器,输入景点后再执行你上面的代码
更多追问追答
追问
我的图形界面已经好了 就是那个查询景点信息的时候图片不会跟着变化 唉
追答
str11=="大礼堂")
????str11是什么
你用System.out.println(f1.getText().trim());
看看f1.getText().trim()是什么内容,查找你错在哪
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式