
Encrypt 類別完整的範例程式碼,請參考Encrypt.java
EncryptorGUI 類別完整的範例程式碼,請參考EncryptorGUI.java
我們繼續完成 EncryptorGUI 剩下該有的功能.... 先來想想,如果使用者在 Output 標籤 (label) 後面的文字方塊 (textfield) 輸入文字,這會是怎麼樣的光景呢?

或許有人會認為使用者不應該這麼做,因為那是我們放編碼、解碼輸出結果的地方。但是使用者不應該這麼做,並不代表使用者不會這麼做,有時候會不小心唄!因此,如果有使用者在 Output 輸入文字,並且很順暢的按下 Enter 鍵,那我們就在 hint 標籤提供提示訊息

這個事件 (event) 交給 OutputListener 處理
151 152 153 154 155 156 157 | // 輸出文字方塊的事件 class OutputListener implements ActionListener { public void actionPerformed(ActionEvent event) { JLabel t = (JLabel) GUIComponent.get( 2 ); t.setText( "This is Output textfield. Why do you do this?" ); } } |
actionPerformed() 為使用者按下 Enter 才會執行的方法,最常用的就是按鈕 (button) 哩!記得, Output 的視窗元件要登記相關的事件處理,不然沒有效果喔!
96 97 | t = (JTextField) GUIComponent.get( 4 ); t.addActionListener( new OutputListener()); |
Clear 按鈕,我們希望效果是清除所有資料

這個事件交給 ClearListener 處理
263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 | // 清除文字方塊及暫存資料的事件 class ClearListener implements ActionListener { public void actionPerformed(ActionEvent event) { userinput = "" ; result = "" ; JTextField t2 = (JTextField) GUIComponent.get( 3 ); t2.setText( "" ); JTextField t3 = (JTextField) GUIComponent.get( 4 ); t3.setText( "" ); JLabel t1 = (JLabel) GUIComponent.get( 2 ); t1.setText( "This is Clear button. Your input is clear." ); } } |
很簡單,兩個屬性 (field) userinput 與 result 設定為空字串 (string) ,然後兩個文字方塊也設定為空字串,這樣原本文字方塊中的文字就會被清空了。
Copy 按鈕,我們希望將 result 拷貝到作業系統 (operating system) 的剪貼簿

這樣就可以在其他軟體中貼上 result 的字串

這個事件交給 ClearListener 處理
279 280 281 282 283 284 285 286 287 288 289 | // 將輸出結果拷貝到作業系統的剪貼簿 class CopyListener implements ActionListener { public void actionPerformed(ActionEvent event) { JTextField t2 = (JTextField) GUIComponent.get( 4 ); t2.selectAll(); t2.copy(); JLabel t1 = (JLabel) GUIComponent.get( 2 ); t1.setText( "This is Copy button. Result is copied to clipboard." ); } } |
這裡,我們是取得 Output 文字方塊的字串
282 283 284 | JTextField t2 = (JTextField) GUIComponent.get( 4 ); t2.selectAll(); t2.copy(); |
selectAll() 會選取文字方塊中所有的文字, copy() 就會拷貝到作業系統的剪貼簿中。
嗯,我們一路從基礎學習,然後開發 Encrypt ,接著設計利用 Encrypt 的圖形介面軟體 EncryptorGUI ,到這裡告一段落囉!下一步應該是?
中英文術語對照 | |
---|---|
類別 | class |
標籤 | label |
文字方塊 | textfield |
事件 | event |
按鈕 | button |
屬性 | field |
字串 | string |
作業系統 | operating system |
您可以繼續參考
GUI 篇
相關目錄
回 Java 入門指南
回 Java 教材目錄
回首頁
參考資料
The JavaTM Tutorials: Getting Started
The JavaTM Tutorials: Learning the Java Language
The JavaTM Tutorials: Essential Classes
The Java Language Specification, Third Edition
本文於 2013 年 1 月訂正
沒有留言:
張貼留言