再大二剛進實驗室時,開始接觸到雅博學長用Swing和awt所組成的『異質換手程式』,雖然介面沒有向之前所使用的C#那麼漂亮,不過畫面只需要key in一些Code就有了,不用在那邊拖拉,這也是Swing和awt吸引我的地方
不過我接觸Swing和awt的時間似乎有點晚了,大家幾乎都不用那樣的語言去撰寫視窗化程式了,而且現在寫程式是越寫越方便了,誰還會用key in的方式去寫視窗化程式?應該也只有遊戲或是運算的介面才會需要吧
JavaFX在我寫Java就有聽學長再說了,那時候不太知道是什麼玩意。這次在『2012 Java認證日』由張益裕 講師所演講『JavaFX與Scene Builder- 美觀、快速、流暢的Java用戶端應用程式』的主題得知的,想不到現在的JavaFX可以套用css樣式,讓版面更加漂亮,之前在寫Swing和awt覺得畫面非常醜陋
好啦,廢話這麼多,我就直接開始進入主題吧!
JavaFX這次頗有Android氣味存在
對了,Scene Builder是甲骨文為了JavaFX所開發出來的一個視窗編輯器,開發者可以先透過Scene Builder拖拉畫面,在透過NetBeans或Eclipse來編輯後端
這次我選擇使用NetBeans進行開發,為何不使用擅長的Eclipse呢?人總是想嘗鮮的!
先到NetBeans官網下載支援Java EE版本,也記得去下載Scene Builder,最重要的JavaFX可別忘記下載喔,不然開發不了就別哭哭了
首先我們開啟NetBeans,選擇Tools的New Project
選擇JavaFX/JavaFX FXML Application
要注意如果你要更動FXML檔名,記得在第一個紅框框修改,那Class Name則在最下面的紅框修改
新開啟的專案通常會有三個檔案,分別是Application Class Name.java,Project Name.fxml以及Project Name.java
Application Class Name.java裡面只是將頁面載入,做一些初始值而已
package javafxapplication1; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; /* * @author Chen Yo */ public class JavaFXApplication1 extends Application { @Override public void start(Stage stage) throws Exception { Parent root = FXMLLoader.load(getClass().getResource("Test.fxml")); Scene scene = new Scene(root); stage.setScene(scene); stage.show(); } public static void main(String[] args) { launch(args); } }
如果有安裝Scene Builder點兩下Project Name.fxml則使用Scene Builder開啟
接著將以下的Code貼到Project Name.java
package javafxapplication1; import java.net.URL; import java.util.ResourceBundle; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.web.WebEngine; import javafx.scene.web.WebView; /* * @author Chen Yo */ public class TestController implements Initializable { @FXML private WebView webView; private WebEngine engine = new WebEngine(); @FXML private void HyperlinkAction(ActionEvent event) { engine=webView.getEngine(); engine.load("http://writecodepeople.blogspot.tw/"); } @Override public void initialize(URL url, ResourceBundle rb) { // TODO } }
並且將Web View對應到程式碼的webview
接著按下Tools的Run Project(快捷鍵:F6)
會跳出一個視窗,這就是我們剛剛所撰寫的成果
按下連結標籤,則會跳出我的網誌啦
看來這次甲骨文將WebView捲軸做的還不錯,還蠻喜歡的
對了,如果在設計Layout時想預覽的話,可以在Scene Builder的Tools選擇Preview/Preview in Windonws (快捷鍵:Ctrl+P)
參考文章:
http://docs.oracle.com/javafx/2/ui_controls/hyperlink.htm