命令行輸入改變Swing程序外觀
命令行輸入改變Swing程序外觀
有些時候,Swing程序并沒有提供在運行期改變外觀的方法.當我們使用的就是一個這樣的Swing程序時,我們可以通過命令行輸入借助Swing default 屬性來覆蓋默認的外觀配置.
- java -Dswing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel
myapp.MainClass
你可以用這個技巧為程序提供一個全新的外觀,而這個外觀可能連最初的程序員都從未想過的.
獲取金屬質感的外觀
有很多非正式的屬性控制著金屬質感的外觀以及Swing 的跨平臺的外觀.JTree 的節點設計時可以把子節點通過連接線連接父節點,不過,通過你的配置,可以顯示也可以隱藏這個連接線.通過設置JTree.lineStyle這個屬性來配置這些連接線.在創建JTree 之后,添加以下的代碼
- // show the lines in a JTree tree.putClientProperty("JTree.lineStyle", "Angled");
- // hide the lines in a jtree tree.putClientProperty("JTree.lineStyle", "None");
對于金屬質感的外觀***的一個抱怨就是菜單和標簽使用的是粗體.通過另外一個簡潔的非正式系統特性,你可以關閉這些.
- java -Dswing.boldMetal=false myapp.MainClass
你可以通過使用一個秘密的特性打開JToolBar按鍵的翻動.這個翻動很有用,因為用戶可以通過這個直觀的翻動清楚的知道當前鼠標的指針停留的位置.提供工具欄常規按鍵的尺寸大小,反饋回來的就是實質內容
- toolbar.putClientProperty("JToolBar.isRollover",Boolean.TRUE);
在Wiki頁面有一份比較長的(雖然談不上全面) 屬性清單.特別是Swing和金屬質感有很多的非正式系統的屬性.當你有什么新的發現時,不妨將你的評論添加到剛剛提到的那個頁面.同時要特別清楚之所以為非正式往往是出于某種原因的,這些東西可能很容易的就被改變,在將來甚至可能被去舍棄.所以還是把這個險留給自己去冒好了.
【編輯推薦】