07 2013 档案
摘要:最近新接触的两个Layout,另外之前用的GridBagLayoutHelper以及最近听说的Qt for java的QCSS据说也不错,只是Qt的跨平台需要单独发布,假如使用QT for java,可能需要考了如何跨平台。TableLayout: double size[][] = { { TableLayout.FILL, 28, 28, 28, 9 }, { 10, 27, 8 } }; // cols widths, rows heights TableLayout layout = new TableLayout(size); getCont...
阅读全文
摘要:最近研究了很久这个问题,从LookAndFeel到继承JPopupMenu或者JMenu都搞不定。其实替换背景的话,只要在JMenuUI中设置Opaque(false) 再将背景设置透明就可以看到PopupMenu的背景了,然后再在PopupMenuUI中将popupmenu和parent都设置成Opaque就可以做透明背景了,但是位置不对啊!!!因为我会在按钮的四周添加阴影,JMenuItem浮在阴影上很难受有木有。这个问题纠结了我大概几天的样子。在追查JPopupMenu的构建,布局的折腾过程中,终于发现了一线曙光,虽然不能替换JMenu的JPopupMenu对象,但是可以通过在MenuU
阅读全文
摘要:首先,参考了一下这篇文章里面提到需要自己Override L&F的initClassDefaults方法,但是查看了一下NimbusLookAndFeel,发现它为了没有实现initClassDefaults方法,而是修改了调用initClassDefaults的getDefaults方法。另外在构造L&F的时候,要求每个类似BasicMenuUI的类中需要有个createUI的方法够在UI,后面会被UIManager使用反射进行invoke,很奇怪的是这里为什么不使用继承来规定这个函数
阅读全文
摘要:首先jdk的setExtendedState是有bug的,需要先重载JFrame的setExtendedState方法 /** * Fix the bug "jframe undecorated cover taskbar when maximized". See: * http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4737788 * * @param state */ @Override public void setExtendedState(int state) { ...
阅读全文
摘要:如果没有内容,JLabel默认透明就无法作为点击区域了,所以为了让其可以响应鼠标事件需要设置setOpaque(true)这样就可以响应鼠标事件了(吐槽一下,多年以前在大学做个web地图导航的网站,当时使用了各种hack才搞定让透明div响应点击事件,同时深深的认为web设计者不能让热点响应事件简直太蛋疼了)
阅读全文
摘要:设置了setRollover,可以正常出现状态但是却不会回到默认状态。研究了一下才发现,repaint的时候不会清除背板而是覆盖上去的,所以如果原图是透明图就会出现状态不变的情况
阅读全文

浙公网安备 33010602011771号