目前日期文章:201012 (8)

瀏覽方式: 標題列表 簡短摘要

JTaskPane 內由 JTaskPaneGroup 組成,而 JTaskPaneGroup 則由 AbstractAction 所組成。很不幸的是 AbstractAction 卻沒有 addMouseListener 函數,也就等於無法加入 JPopupMenu 功能。

經由查看原始碼才發現,原來 AbstractAction 都會被轉換成 JLinkButton,那何不一開始就改成 JLinkButton 呢?原來 JLinkButton 是繼承自 JButton,預設會畫一個大外框,造成二個 JLinkButton 間距太大不好看。而 L2FProd 的做法是在 BasicTaskPaneGroupUI.java 內寫一個 createAction 新增一個 JLinkButton 並覆寫 updateUI 來重設 JButton 的外觀。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

點我執行範例程式

我實做的 statusbar 主要是利用 JToolBar 來做的。主要就是把 border 去掉,floatable 關閉,再畫上陰影及右下方的三角形。其中最難的就是 JToolBar 的子元件會跟上方陰影重疊,為了把它們二者分離,花了我半天時間去實驗,最後才發現只要修改 getInsets 函數就好了。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

點我執行範例程式

JTaskPane 設定

  1. JTaskPane 裏面最主要的成份為 JTaskPaneGroup 及 AbstractAction。JTaskPane 包含 JTaskPaneGroup,而 JTaskPaneGroup 包含 AbstractAction。
  2. JTaskPaneGroup 雖然設計是要加入 AbstractAction 元件,但其實很多 Swing 元件都有包含一個 Action 元件,所以 Swing 元件都可以加入 JTaskPaneGroup。
  3. JTaskPane 背景顏色設定需同時設定 TaskPane.background,TaskPane.useGradient,TaskPane.backgroundGradientStart,TaskPane.backgroundGradientEnd,利用 UIManager.put() 來設定。
  4. TaskPane.background 是用來設定 JTaskPaneGroup 圓角缺空的顏色。
  5. TaskPane.useGradient 是用來設定是否有漸層。
  6. TaskPane.backgroundGradientStart 是用來設定漸層開始的顏色。
  7. TaskPane.backgroundGradientEnd 是用來設定漸層結束的顏色。
  8. 如果要使用固定顏色顯示,最好是把 TaskPane.useGradient 設定成 true,TaskPane.backgroundGradientStart 及 TaskPane.backgroundGradientEnd 設定成同顏色。
  9. 當 TaskPane.useGradient 設定成 false 時,不知為啥,修改幾次背景色後會亂掉。

JTaskPaneGroup 設定

  1. setAnimated() 展開/收起時是否有動畫,預設值為 true。
  2. setCollapsable() 是否可以收起,預設值為 true。
  3. setExpanded() 設定展開或收起,預設值為 true。
  4. setIcon() 設定圖示。
  5. setSpecial() 設定為特殊窗格,也就是畫起來跟別人不太相同,預設值為 false。
JTaskPane taskPane = new JTaskPane();

JTaskPaneGroup lookandfeel_group = new JTaskPaneGroup();
lookandfeel_group.setTitle("LookAndFell");
lookandfeel_group.setSpecial(true);
lookandfeel_group.setCollapsable(false);
lookandfeel_group.setExpanded(false);

LookAndFeelInfo lookAndFeelInfo[] = UIManager.getInstalledLookAndFeels();
for(int i=0; i

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

2010-12-17_154156.png

要製做 JNLP 前,必須先為 JAR 簽名,如果沒有簽名,就無法執行,如上圖所示。主要步驟為先利用 keytool 製做憑證,再利用 jarsigner 把憑證寫入 JAR 裏。二支程式都包含在 JDK 裏,JRE 只有 keytool 沒有 jarsigner,所以一定要安裝 JDK 才可以。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

點我執行範例程式

製做 java look and feel 選單,首先要先取得系統支援的 look and feel 項目,可由 UIManager.getInstalledLookAndFeels() 來取得目前可用的 look and feel。接著製做 JRadioButtonMenuItem,並內嵌一個 actionPerformed 來變更外觀。變更新的 look and feel 後,一定要執行 SwingUtilities.updateComponentTreeUI 來變更當前視窗內的所有元件。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

2010-12-15_132914.png

Java 的 close event 有二種,一為 windowClosed,一為 windowClosing。在一般狀況下,按下右上角的 close 按鈕只會呼叫 windowClosing。因為 sdk source 找不到 Frame.java,所以不知道按了右上角 close 按鈕會做什麼動作。但是經由 JFrame.java 中的 processWindowEvent 函數得知,收到 WindowEvent.WINDOW_CLOSING 時,會做出下列動作。

  1. HIDE_ON_CLOSE: 隱藏視窗。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

Java File 及 Directory 操作是經由類別 java.io.File,由於 File 物件的產生無法像 C 語言一樣有傳回值,所以當 File 物件產生時必須再用 exists() 來檢查檔案/目錄是否存在,否則後面經由其它讀寫類別的操作都會產生 FileNotFoundException。

檔案操作

  1. exists()

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()

每次進入 MSDN 都會跑到台灣的 MSDN: http://msdn.microsoft.com/zh-tw/default.aspx,不管是用 http://msdn.microsoft.com/,還是用 http://www.microsoft.com/msdn/

想想這樣也無所謂,但是很不幸的是,台灣的 MSDN Library(文件庫)卻是殘缺不全的版本,竟然少了我最想看的 Windows Development,也就是講 Windwos SDK 的東東。反觀大陸的 MSDN Library 就有 Windows 开发,不過好像裏面內容也是殘缺不全,但仍有參考價值。最後,正確的 Windows Development 就在 http://msdn.microsoft.com/en-us/library/ee663300%28v=VS.85%29.aspx,大家不要找錯方向了。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()