再大二剛進實驗室時,開始接觸到雅博學長用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









