关于swing图片按钮有被点击时凹下的效果
用图片做了个按钮之后...想让按钮有被点击时凹下去的效果,在往上找了许久都没找到...自己倒有一个方法,给按钮添加鼠标事件侦听,当鼠标进入按钮范围,用setIcon(“图...
用图片做了个按钮之后...想让按钮有被点击时凹下去的效果,在往上找了许久都没找到...自己倒有一个方法,给按钮添加鼠标事件侦听,当鼠标进入按钮范围,用setIcon(“图片路径”)重新设置显示图片,但是有的图片能显示,有的不能显示,这是什么原因...对色彩,图片大小有什么特殊要求么?请教
展开
展开全部
不要给 JButton 加鼠标事件!
JButton 实现了普通的三态外加选中、禁用状态,有很多方法可以设置,不要自己去写鼠标监听器。
setBorderPainted(boolean b) //是否画边框,如果用自定义图片做按钮背景可以设为 false。
setContentAreaFilled(boolean b) //是否填充,如果你的自定义图片不是矩形或存在空白边距,可以设为 false 使按钮看起来透明。
setFocusPainted(boolean b) //是否绘制焦点(例如浅色虚线框或者加粗的边框表明按钮当前有焦点)。
setMargin(Insets m) //改变边距,如果 borderPainted 和 contentAreaFilled 都设成了 false,建议把边距都调为 0:new Insets(0, 0, 0, 0)。
setIcon(Icon defaultIcon) //注意了这是改的默认图标。三态中的默认,即鼠标未在其上的时候。
setPressedIcon(Icon pressedIcon) //按下时的图标。
setRolloverIcon(Icon rolloverIcon) //鼠标经过时的图标。
setRolloverSelectedIcon(Icon rolloverSelectedIcon) //鼠标经过时且被选中状态的图标。
setSelectedIcon(Icon selectedIcon) //选中时的图标。
setDisabledIcon(Icon disabledIcon) //禁用时显示的图标。例如可以换一张灰度图片。
setDisabledSelectedIcon(Icon disabledSelectedIcon) //禁用且被选中状态的图标。
--------------------------------------------
按钮多大,去掉边距以后图片就是多大。会自动缩放的。因此如果 margin 都设成 0 的话,按钮多大图片就是多大。有了这些方法根本不需要自己画按钮或者用鼠标监听器。
JButton 实现了普通的三态外加选中、禁用状态,有很多方法可以设置,不要自己去写鼠标监听器。
setBorderPainted(boolean b) //是否画边框,如果用自定义图片做按钮背景可以设为 false。
setContentAreaFilled(boolean b) //是否填充,如果你的自定义图片不是矩形或存在空白边距,可以设为 false 使按钮看起来透明。
setFocusPainted(boolean b) //是否绘制焦点(例如浅色虚线框或者加粗的边框表明按钮当前有焦点)。
setMargin(Insets m) //改变边距,如果 borderPainted 和 contentAreaFilled 都设成了 false,建议把边距都调为 0:new Insets(0, 0, 0, 0)。
setIcon(Icon defaultIcon) //注意了这是改的默认图标。三态中的默认,即鼠标未在其上的时候。
setPressedIcon(Icon pressedIcon) //按下时的图标。
setRolloverIcon(Icon rolloverIcon) //鼠标经过时的图标。
setRolloverSelectedIcon(Icon rolloverSelectedIcon) //鼠标经过时且被选中状态的图标。
setSelectedIcon(Icon selectedIcon) //选中时的图标。
setDisabledIcon(Icon disabledIcon) //禁用时显示的图标。例如可以换一张灰度图片。
setDisabledSelectedIcon(Icon disabledSelectedIcon) //禁用且被选中状态的图标。
--------------------------------------------
按钮多大,去掉边距以后图片就是多大。会自动缩放的。因此如果 margin 都设成 0 的话,按钮多大图片就是多大。有了这些方法根本不需要自己画按钮或者用鼠标监听器。
追问
明白了...谢谢哈
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询