文档章节

自定义Button

jackchanxj
 jackchanxj
发布于 2014/06/13 22:13
字数 358
阅读 30
收藏 0

今天开始着手写课程设计,非常作弊得打算写一个Mplayer的前端,通过JNA和cmd调用Mplayer来制作一个播放器。但发现原来单单写个前端就够受的了。


言归正传,今晚就几下刚才才摸索到的JButton的使用技巧。

Swing下的JButton使用起来很方便,大家都知道的,但默认图标确实是丑,虽然能自定义图标(icon),但效果那是惨不忍睹。因此,我从api中找到了JButton的直接父类AbstractButton。 


要自定义Button,首先要button中一下的几种图标:

defaultIcon:默认图标,就不多说了。

pressedIcon:按下图标,就是你点击按钮时显示的图标

rolloverIcon:翻转图标,其实就是你鼠标经过按钮时显示的图标

rolloverSelectedIcon :选择翻转图标,不太明白

disabledIcon:禁用图标,就是按钮处于禁用状态时显示的图标

disabledSelectedIcon:禁用选择图标,也不太懂,希望有大神指导

说到这里,大家都懂了,其实所谓的自定义图标就是分别设置不同状态下的图标,以达到不同的效果。

play = new JButton();
play.setPressedIcon(new ImageIcon("data/play.png"));
play.setSelectedIcon(new ImageIcon("data/play1.png"));
play.setRolloverIcon(new ImageIcon("data/play2.png"));



不过还要注意,AbstractButton 是默认带边框和带按下效果的,这里要把它们禁用掉,代码如下:

play.setBorder(null);
play.setContentAreaFilled(false);




© 著作权归作者所有

共有 人打赏支持
jackchanxj
粉丝 1
博文 9
码字总数 2029
作品 0
广州
程序员
Egret之Eui.Button换肤

在Gui中对Button换皮相当的给力: Gui.Button.skinName = new egret.gui.ButtonSkin(normalresource, upresource , disable_resource); 但是在EUI中没有ButtonSkin类.所以找到了其他方法. 我用......

Aonaufly
2017/10/26
0
0
史上最详细最清楚的layoutSubView何时调用文章

1.init初始化 和 initWithFrame初始化都不会调用layoutSubView 2. addsubView会触发layoutSubViews, 当TestView.frame = {0,0,0,0}时; TestView *test = [[TestView alloc] init]; [sel......

王素年
2016/12/20
9
0
Android自定义吐司Toast:自定义样式、自定义显示时长

Android自定义吐司Toast:自定义样式、自定义显示时长 鉴于系统toast,一般都是黑色背景且位于界面底部,我们看到有些app弹出的toast,有的在界面中间、有的在界面顶部,还有的是带图片的,那...

天外来客1101
2016/11/23
141
0
android的listview中的每一个item内有个自定义的button,怎么避免button与item的点击事件同时响应

android的listview中的每一个item内有个自定义的button,怎么避免button与item的点击事件同时响应, 详细的说就是在listview中我添加了一个自定义的button控件,当我点击button按钮时,手指有...

claylee
2013/05/19
2.5K
1
ios UITableViewCell上button点击混乱

自定义cell上添加自定义button button很多 点击button的触发事件时 发生复用 求解!

_spring_
2014/03/19
2.7K
4

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周日乱弹 —— 种族不同,禁止交往

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《苏菲小姐》- 鱼果 《苏菲小姐》- 鱼果 手机党少年们想听歌,请使劲儿戳(这里) @貓夏:下大雨 正是睡觉的好时候 临睡前...

小小编辑
今天
226
6
Python 搭建简单服务器

Python动态服务器网页(需要使用WSGI接口),基本实现步骤如下: 1.等待客户端的链接,服务器会收到一个http协议的请求数据报 2.利用正则表达式对这个请求数据报进行解析(请求方式、提取出文...

代码打碟手
今天
1
0
Confluence 6 删除垃圾内容

属性(profile)垃圾 属性垃圾的定义为,一个垃圾用户在 Confluence 创建了用户,但是这个用户在自己的属性页面中添加了垃圾 URL。 如果你有很多垃圾用户在你的系统中创建了属性,你可以使用...

honeymose
今天
1
0
qduoj~前端~二次开发~打包docker镜像并上传到阿里云容器镜像仓库

上一篇文章https://my.oschina.net/finchxu/blog/1930017记录了怎么在本地修改前端,现在我要把我的修改添加到部署到本地的前端的docker容器中,然后打包这个容器成为一个本地镜像,然后把这...

虚拟世界的懒猫
今天
1
0
UML中 的各种符号含义

Class Notation A class notation consists of three parts: Class Name The name of the class appears in the first partition. Class Attributes Attributes are shown in the second par......

hutaishi
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部