您的位置:程序门 -> java -> gui 设计



关于切换jbutton背景图片问题,专家请进!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于切换jbutton背景图片问题,专家请进!
发表于:2008-01-23 17:13:09 楼主
小弟当前遇到一个棘手问题,我做了一个按钮,按钮是透明的,这样方便设置按钮的背景图片。
我想在鼠标移入jbutton时,在按钮上绘制新的背景图片,然后将原有的图片绘制在新图片的上层。请各位大虾赐教
我不知道表达清楚了没有,如果大家觉得不太好理解的话,就看一下“遨游”软件的工具栏按钮,那就是小弟想要的效果。谢谢!

最后,重申一下,谁答出来,马上结贴。除帮顶的人给与答谢奖分外,剩下的分值全部归答出的大虾所有!
小弟在线等,再次感谢!
发表于:2008-01-23 17:16:141楼 得分:0
另外说明一下,本人是新手,请大虾给出简单例程代码,谢谢!
发表于:2008-01-23 17:35:322楼 得分:0
遨游具体是什么效果我没看到过,这个无非就是添加监听与触发事件添加图片

java code
jbutton.addmouselistener(new java.awt.event.mouseadapter() { public void mouseentered(java.awt.event.mouseevent e) { jbutton.seticon(new imageicon(this.getclass().getresource("images/1.gif"))); // 添加图片 } });


还有你说的“将原有的图片绘制在新图片的上层”,不明白什么意思,上层是指哪?
两张图片重叠?
发表于:2008-01-23 18:19:063楼 得分:0
其实没有必要将jbutton设为透明,直接在上面绘图就行了.
1.继承一个jbutton类,同时读入3个图片(分别作为普通状态,鼠标移入状态,鼠标点击状态的填充图)
2.添加鼠标监听器,注意当发生如下几个事件时重绘jbutton就行:
                1.鼠标移入移出;2.鼠标点击;
还要注意的是要用paintcomponent方法绘图.
发表于:2008-01-23 20:22:144楼 得分:0
正解,帮顶!
发表于:2008-01-23 21:10:415楼 得分:0
能不能将代码写成一个小例子阿,本人是新手阿!呵呵!
发表于:2008-01-23 21:22:256楼 得分:0
学习,up
发表于:2008-01-23 21:51:347楼 得分:0
lz意思就是鼠标移进移出两张图片吧
olivesoup都写出来了

java code
import java.awt.borderlayout; import java.awt.event.mouseevent; import java.awt.event.mouselistener; import javax.swing.imageicon; import javax.swing.jbutton; import javax.swing.jframe; public class test implements mouselistener { jframe jf; jbutton jb1, jb2; public static void main(string[] args) throws exception { new test().go(); } public void go() { jf = new jframe(); jb1 = new jbutton(); jb2 = new jbutton(); jb1.addmouselistener(this); jf.add(jb1, borderlayout.north); jf.add(jb2, borderlayout.south); jf.setvisible(true); jf.setsize(400, 200); jf.setdefaultcloseoperation(jframe.exit_on_close); } public void mouseclicked(mouseevent e) { // todo auto-generated method stub } public void mouseentered(mouseevent e) { jb1.seticon(new imageicon(this.getclass().getresource("1.jpg"))); } public void mouseexited(mouseevent e) { jb1.seticon(new imageicon(this.getclass().getresource("2.jpg"))); } public void mousepressed(mouseevent e) { // todo auto-generated method stub } public void mousereleased(mouseevent e) { // todo auto-generated method stub } }
 


快速检索

最新资讯
热门点击