命令行输入改变Swing程序外观

命令行输入改变Swing程序外观

有些时候,Swing程序并没有提供在运行期改变外观的方法.当我们使用的就是一个这样的Swing程序时,我们可以通过命令行输入借助Swing default 属性来覆盖默认的外观配置.

 
 
 
  1. java -Dswing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel
     myapp.MainClass 

你可以用这个技巧为程序提供一个全新的外观,而这个外观可能连最初的程序员都从未想过的.

获取金属质感的外观

有很多非正式的属性控制着金属质感的外观以及Swing 的跨平台的外观.JTree 的节点设计时可以把子节点通过连接线连接父节点,不过,通过你的配置,可以显示也可以隐藏这个连接线.通过设置JTree.lineStyle这个属性来配置这些连接线.在创建JTree 之后,添加以下的代码

 
 
 
  1. // show the lines in a JTree tree.putClientProperty("JTree.lineStyle", "Angled"); 
  2. // hide the lines in a jtree tree.putClientProperty("JTree.lineStyle", "None");  

对于金属质感的外观***的一个抱怨就是菜单和标签使用的是粗体.通过另外一个简洁的非正式系统特性,你可以关闭这些.

 
 
 
  1. java -Dswing.boldMetal=false myapp.MainClass  

你可以通过使用一个秘密的特性打开JToolBar按键的翻动.这个翻动很有用,因为用户可以通过这个直观的翻动清楚的知道当前鼠标的指针停留的位置.提供工具栏常规按键的尺寸大小,反馈回来的就是实质内容

 
 
 
  1. toolbar.putClientProperty("JToolBar.isRollover",Boolean.TRUE); 

在Wiki页面有一份比较长的(虽然谈不上全面) 属性清单.特别是Swing和金属质感有很多的非正式系统的属性.当你有什么新的发现时,不妨将你的评论添加到刚刚提到的那个页面.同时要特别清楚之所以为非正式往往是出于某种原因的,这些东西可能很容易的就被改变,在将来甚至可能被去舍弃.所以还是把这个险留给自己去冒好了.

【编辑推荐】

  1. Swing模型过滤器概述
  2. 浅谈WebRenderer与Swing应用程序
  3. TableModelExample可以简化Swing
  4. JTable和TableModel简化Swing
  5. 用BeanTableModel简化Swing
THE END