求指教啊!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";
就不会动了 图片不会切换....求指教啊 展开
((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";
就不会动了 图片不会切换....求指教啊 展开
4个回答
2011-05-24
展开全部
你这样情况应该用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 "":
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聊吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
路径写错了 吧 /这样的斜线只需要一个 转义符 = 反斜杠字符 (\)
追问
我改成单斜线试了下 还是那样的 背景图片还是那个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也是不行的,要想行就强转
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
??没明白你说的什么
我的思路:
添加一个按钮(或其他)事件监听器,输入景点后再执行你上面的代码
我的思路:
添加一个按钮(或其他)事件监听器,输入景点后再执行你上面的代码
更多追问追答
追问
我的图形界面已经好了 就是那个查询景点信息的时候图片不会跟着变化 唉
追答
str11=="大礼堂")
????str11是什么
你用System.out.println(f1.getText().trim());
看看f1.getText().trim()是什么内容,查找你错在哪
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询