Swing
i烤麸
开发工程师
展开
-
Swinghacks——利用重叠产生阴影和3D效果
看标题你可能觉得很犀利,其实是很简单的东西,看完希望不要失望,还是先看图吧文字阴影效果所谓3D效果看完图片基本知道原理了,其实就是extends JLabel然后重写paintComponent方法,利用drawString分别画出上层文本和底层文本如果是阴影效果,则底层文本向右下偏移;所谓的3D效果就是底层文本向左上偏移实现代码我就不贴出来了,感兴趣的话可以到原创 2013-02-24 23:10:44 · 1518 阅读 · 0 评论 -
Swinghacks——获取系统图标
首先,java是不支持ico图标的例如,我的D盘有一个a.pdf文件,操作系统默认显示了图标,如图当然,这个a.pdf是我新建的a.txt然后改后缀得到的现在我想在java中也获取到这个pdf的图标,效果如下:这样的话,我们没有必要准备一系列的图标了,需要哪个文件类型的系统图标,临时建一个空文件,获取图标即可当然,也可以把获取到的图标保存成java能识别的文件类原创 2013-03-02 19:10:12 · 1964 阅读 · 4 评论 -
Swinghacks——抗锯齿字体2
swing小组在java5对抗锯齿字体做了新的支持,类com.sun.java.swing.SwingUtilities2我在jdk1.5_22下查看了此类,其中有一个方法,如下: private static boolean drawTextAntialiased(JComponent c) { if (!AA_TEXT_DEFINED) {原创 2013-02-28 09:01:49 · 2039 阅读 · 0 评论 -
Swinghacks——抗锯齿字体3
上 两篇文章介绍的方法都不能算最好的实现抗锯齿字体的方法,看看大师是怎么做的Frédéric Lavigne, author of the famous Skin L&F and webmaster of www.javootoo.com, a great repository of Look and Feels for Swing, didn't think so and found an原创 2013-02-28 15:38:39 · 1363 阅读 · 0 评论 -
Swinghacks——抗锯齿字体
先看看对比图片上面的是普通字体,下面的是抗锯齿字体,多少还是有点区别的设置方法很简单: Graphics2D g2 = (Graphics2D)g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);很不幸的是,Graph原创 2013-02-27 17:49:41 · 3066 阅读 · 2 评论 -
Swinghacks——带搜索功能的JTextArea
先上图看效果:搜索匹配用的是正则表达式,当然直接字符匹配也是ok的,关键不在与怎么匹配,关键是获取匹配结果的开始和结束位置关于java正则表达式的使用,可以参考这2篇文章java使用正则表达式http://blog.csdn.net/laizhenhai88/article/details/7293418正则表达式基础http://blog.csdn.net/laizhen原创 2013-02-27 16:24:35 · 1589 阅读 · 0 评论 -
Swinghacks——把提示窗口放到glass中
看看效果看看苹果是怎么做的实现原理,jframe有一个玻璃层,这层是在最上面,一般tooltip的内容就是在这一层显示,这样的话可以保证tip信息显示在内容控件的上面要说,把一个dialog显示在玻璃层是好是坏,我拿不准。但是从功能角度考虑,如果此dialog是做提示用处的话,那和tooltip是一个用处,放在玻璃层也是合理的上代码: public JC原创 2013-02-27 15:13:08 · 996 阅读 · 0 评论 -
JAVA截屏和窗口全屏的方法
截屏的方法 Robot rbt = new Robot(); Toolkit tk = Toolkit.getDefaultToolkit(); Dimension dim = tk.getScreenSize(); Image background = rbt.createScreenCapture转载 2013-02-27 14:45:35 · 1616 阅读 · 0 评论 -
Swinghacks——JTable单击表头选中列
jtable默认单击表头是没有什么反应的,对于使用过excel的人来说会很失望要让单击表头就选中该列也很简单,直接上代码import javax.swing.*;import javax.swing.table.*;import java.awt.event.*;public class ColumnSelectableJTable extends JTable { pu原创 2013-02-27 13:22:38 · 3136 阅读 · 0 评论 -
Swinghacks——JTable根据内容调整列宽
JTable默认情况下,列宽是固定值,如下:若要根据内容来调整列宽,那首先要知道内容占用多少宽度,代码如下 int maxwidth = 0; for (int row=0; row<table.getRowCount(); row++) { TableCellRenderer rend = table.原创 2013-02-27 12:59:59 · 2237 阅读 · 0 评论 -
Swinghacks——动感JList
ok,我承认动感这个词用的有点过,还是先上图看效果解释一下,图片中是没有什么动感的,其实效果是这样当选中item时,蓝色的选中背景会从白色渐变到蓝色,给人动感~虽然这种动感没有特别实际的用处,不过实现原理还是有点意思,来看看1、先通过lookandfeel获取选中和未选中的背景颜色,在转换成rgb浮点数组float[3] UIDefaults uid =原创 2013-02-26 10:32:29 · 1090 阅读 · 0 评论 -
Swinghacks——按钮模糊效果
先看效果图片,正常图片如下:当按钮都disable之后,对比效果如下:下面的normal是正常按钮disable后的效果上面的是处理成模糊效果来看看原理,思路当然还是重写paintComponent,然后利用paintComponent(buf.getGraphics)获取原控件样式的图片对图片进行模糊处理后画出来,看代码 public void pa原创 2013-02-25 22:52:22 · 1518 阅读 · 0 评论 -
Swinghacks——滚动控件的背景
先看效果图片:好吧,你没看懂就对了,我来解释一下图中的效果是,拖动滚动条,背景的云图片 和 飞碟图片 位置都不变,文本内容跟着滚动条变化可能你觉得这个没什么实际用处,不过飞碟图片换成某些logo或许好点,比如CCTV来看实现原理首先你要知道JScrollPane分9个区域(可以参考http://blog.csdn.net/mylxiaoyi/article/detail原创 2013-02-25 16:05:36 · 938 阅读 · 0 评论 -
Swinghacks——JTabbedPane切换百页窗效果
先上图看效果就切换效果来说不是很有意思,不过实现原理还是有点意思,请往下看首先肯定是要在ChangeListener里监听切换动作,然后有意思的是下面的代码 Component comp = this.getComponentAt(previous_tab); buf = new BufferedImage(comp.getWidt原创 2013-02-25 16:42:06 · 1723 阅读 · 0 评论 -
Swinghacks——给文本控件添加图片背景
先看效果图,这是一个有背景图片的JTextField如果用java做个email客户端 或者 便签程序,然后给输入控件加入一些背景图片的话,还是不错的。当然还可以配合上一篇文章中写到的 自定义边框。来看看实现原理,swing默认是没有设置背景图片的功能,那么还是需要利用paintComponent方法有一点需要注意,在重写paintComponent之前把背景图片画好,然原创 2013-02-25 15:37:53 · 1456 阅读 · 0 评论 -
Swinghacks——自定义边框
自定义边框用到的情况也比较少(如果只是为了美观的话)如下图,把刻度做到边框上是个不错的选择当然如果真的为了美观,那看看下面的图片:这又让我想起做web时用div布局,宽度自增长时那css写的真是累,ui ux什么的是很花时间和心思,哎,不过swing就算了,不美观而且设计的非常复杂。个人还是比较支持原生态swt,但是如果真决定用swt写一个产品的话,那其实可以考虑不用原创 2013-02-25 00:19:40 · 1499 阅读 · 0 评论 -
Swinghacks——用图片自定义按钮
记得大学时候写网站,会要求美工设计超链接时,需要设计 正常显示的样式、鼠标滑过的样式、鼠标按住的样式 等等今天看swinghacks发现原来swing中的按钮已经有这种封装的方法,就在AbstractButton类中,调用也很简单,如下: JButton button = new JButton("images/button.png"); button.set原创 2013-02-24 22:54:09 · 885 阅读 · 0 评论 -
Swinghacks——显示图片的2种常用方法
1、利用JLabel的icon来显示图片基本思路就是把要显示的图片设置为JLabel的图标setIcon(icon),然后设置JLabel的文本和边框为nullpublic class ImageLabel extends JLabel { public ImageLabel(String img) { this(new ImageIcon(img));原创 2013-02-24 22:43:32 · 993 阅读 · 0 评论 -
复杂JTable(复杂表头、跨行列表体)
看图基本思路就是重写渲染器具体如何定义多表头 和 跨行列的表体 的数据描述格式 ,这个可以根据自己的封装规则来定代码可以到我的资源中去下载,资源名称“复杂JTable(复杂表头、跨行列表体)”代码不是我写的,仅供学习下怎么重写渲染器然后paint出复杂的JTable原创 2013-03-27 17:57:19 · 4424 阅读 · 1 评论