【參考資料】
[1] Java Official Web Site:http://www.oracle.com/technetwork/java/index.html
[2] JavaFX:http://www.oracle.com/technetwork/java/javafx
[3] JavaFX 8.0 API Specification.
[4] Java Platform, Standard Edition 8 API Specification.
© Chia-Hui Huang
2014年11月29日 星期六
JavaFX Fractal Tree
[1] Java Official Web Site:http://www.oracle.com/technetwork/java/index.html
[2] JavaFX:http://www.oracle.com/technetwork/java/javafx
[3] JavaFX 8.0 API Specification.
[4] Java Platform, Standard Edition 8 API Specification.
© Chia-Hui Huang
2014年11月28日 星期五
JavaFX Barnsley Fern
[1] Java Official Web Site:http://www.oracle.com/technetwork/java/index.html
[2] JavaFX:http://www.oracle.com/technetwork/java/javafx
[3] JavaFX 8.0 API Specification.
[4] Java Platform, Standard Edition 8 API Specification.
© Chia-Hui Huang
JavaFX Fractal Tree
[1] Java Official Web Site:http://www.oracle.com/technetwork/java/index.html
[2] JavaFX:http://www.oracle.com/technetwork/java/javafx
[3] JavaFX 8.0 API Specification.
[4] Java Platform, Standard Edition 8 API Specification.
© Chia-Hui Huang
JavaFX Julia Set
【參考資料】
[1] Java Official Web Site:http://www.oracle.com/technetwork/java/index.html
[2] JavaFX:http://www.oracle.com/technetwork/java/javafx
[3] JavaFX 8.0 API Specification.
[4] Java Platform, Standard Edition 8 API Specification.
© Chia-Hui Huang
JavaFX Koch Snowflakes
【參考資料】
[1] Java Official Web Site:http://www.oracle.com/technetwork/java/index.html
[2] JavaFX:http://www.oracle.com/technetwork/java/javafx
[3] JavaFX 8.0 API Specification.
[4] Java Platform, Standard Edition 8 API Specification.
© Chia-Hui Huang
[1] Java Official Web Site:http://www.oracle.com/technetwork/java/index.html
[2] JavaFX:http://www.oracle.com/technetwork/java/javafx
[3] JavaFX 8.0 API Specification.
[4] Java Platform, Standard Edition 8 API Specification.
© Chia-Hui Huang
2014年11月27日 星期四
JavaFX Fractal Tree
[1] Java Official Web Site:http://www.oracle.com/technetwork/java/index.html
[2] JavaFX:http://www.oracle.com/technetwork/java/javafx
[3] JavaFX 8.0 API Specification.
[4] Java Platform, Standard Edition 8 API Specification.
© Chia-Hui Huang
2014年11月24日 星期一
JavaFX 8技術手冊
完成JavaFX 8技術手冊第五校,就等封面完成就可以出版了,章節包括:
1. JavaFX
2. JavaFX程式架構
3. Layout Pane
4. 效果
5. 事件
6. 按鈕
7. 選項項目
8. 捲軸、滑動軸、進度指示器與進度列
9. 選單
10. 文字編輯物件
11. 窗格
12. 對話盒
13. Web
14. 樹
15. 表格
16. 樹狀表格
17. 繪圖
18. 動畫
19. 圖表
20. 多媒體
21. 3D
© Chia-Hui Huang
1. JavaFX
2. JavaFX程式架構
3. Layout Pane
4. 效果
5. 事件
6. 按鈕
7. 選項項目
8. 捲軸、滑動軸、進度指示器與進度列
9. 選單
10. 文字編輯物件
11. 窗格
12. 對話盒
13. Web
14. 樹
15. 表格
16. 樹狀表格
17. 繪圖
18. 動畫
19. 圖表
20. 多媒體
21. 3D
© Chia-Hui Huang
2014年11月21日 星期五
2014年11月16日 星期日
JavaFX 8技術手冊
今天完成JavaFX 8技術手冊的第二校,寫書不難,校稿才是最辛苦的事。
自2000年開始寫第一本書至今,已出了繁體和簡體書共40本,賣得好不好是一回事,看著自己辛苦的成果放在書架上,就已經很滿足了。今年終於因為健康的關係,不得不忍痛停止。
© Chia-Hui Huang
自2000年開始寫第一本書至今,已出了繁體和簡體書共40本,賣得好不好是一回事,看著自己辛苦的成果放在書架上,就已經很滿足了。今年終於因為健康的關係,不得不忍痛停止。
© Chia-Hui Huang
2014年11月11日 星期二
Fisheye Picture Menu (JavaFX)
Fisheye Picture Menu (魚眼式圖片功能表) 是商業智慧軟體所提供的功能之一,類似MacOS的Dock功能表,功能表包含數個圖片,當滑鼠靠近圖片時,圖片會自動放大,以產生動態更改大小的效果。透過魚眼式圖片功能表可將資料依不同的條件篩選出不同的結果,以建立圖表互動,讓圖表更加多樣化。
此次以JavaFX開發Fisheye Picture Menu,以滑鼠事件處理當滑鼠移至圖片上方時,則放大圖片比例並顯示相對應的圖表。當滑鼠離開圖片時,則恢復圖片正常比例。
【執行結果】
【參考資料】
[1] Java Official Web Site:http://www.oracle.com/technetwork/java/index.html
[2] JavaFX:http://www.oracle.com/technetwork/java/javafx
[3] JavaFX 8.0 API Specification.
[4] Java Platform, Standard Edition 8 API Specification.
© Chia-Hui Huang
此次以JavaFX開發Fisheye Picture Menu,以滑鼠事件處理當滑鼠移至圖片上方時,則放大圖片比例並顯示相對應的圖表。當滑鼠離開圖片時,則恢復圖片正常比例。
【執行結果】
【參考資料】
[1] Java Official Web Site:http://www.oracle.com/technetwork/java/index.html
[2] JavaFX:http://www.oracle.com/technetwork/java/javafx
[3] JavaFX 8.0 API Specification.
[4] Java Platform, Standard Edition 8 API Specification.
© Chia-Hui Huang
JavaFX特效 (2) 漸層 (Gradient) 處理
今天刊登於CodeData網站,有關JavaFX特效之漸層 (Gradient) 處理:
http://www.codedata.com.tw/java/javafx-effect-2-gradient/
© Chia-Hui Huang
http://www.codedata.com.tw/java/javafx-effect-2-gradient/
© Chia-Hui Huang
2014年11月4日 星期二
JavaFX Mandelbrot Set
Mandelbrot Set (曼德布洛特集) 是一種在複平面上組成分形之點集合,以數學家Benoit B. Mandelbrot為名。
以前曾以Java Swing寫過一個Mandelbrot Set程式,這次試著改以JavaFX,還有很多地方需要修改。
【參考資料】
[1] Java Official Web Site:http://www.oracle.com/technetwork/java/index.html
[2] JavaFX:http://www.oracle.com/technetwork/java/javafx
[3] JavaFX 8.0 API Specification.
[4] Java Platform, Standard Edition 8 API Specification.
[5] Mandelbrot Set: http://en.wikipedia.org/wiki/Mandelbrot_set.
© Chia-Hui Huang
以前曾以Java Swing寫過一個Mandelbrot Set程式,這次試著改以JavaFX,還有很多地方需要修改。
Mandelbrot Set (Java Swing)
Mandelbrot Set (JavaFX)
【參考資料】
[1] Java Official Web Site:http://www.oracle.com/technetwork/java/index.html
[2] JavaFX:http://www.oracle.com/technetwork/java/javafx
[3] JavaFX 8.0 API Specification.
[4] Java Platform, Standard Edition 8 API Specification.
[5] Mandelbrot Set: http://en.wikipedia.org/wiki/Mandelbrot_set.
© Chia-Hui Huang
如何在JavaFX中開啟新視窗?
JavaFX應用程式需繼承javafx.application.Application抽象類別,Application抽象類別類似於Java Swing的JApplet類別,以其「生命週期」執行JavaFX,分別為:
因此欲在原視窗中產生另一個新視窗,只要使用Stage類別則可,以下範例示範當點選原視窗中的按鈕時,則產生另一個新視窗:
當點選原視窗中的按鈕時,則產生另一個新視窗:
【參考資料】
[1] Java Official Web Site:http://www.oracle.com/technetwork/java/index.html
[2] JavaFX:http://www.oracle.com/technetwork/java/javafx
[3] JavaFX 8.0 API Specification.
[4] Java Platform, Standard Edition 8 API Specification.
© Chia-Hui Huang
- init():初始化JavaFX應用程式。
- start():為JavaFX應用程式的進入點,在此為Java Applet。
- launch():啟動獨立 (Standalone) 的JavaFX應用程式,在此為視窗程式。
- stop():當JavaFX應用程式結束之前,將執行stop()方法。
import javafx.application.Application; import javafx.scene.Scene; import javafx.stage.Stage; ... // 繼承javafx.application.Application抽象類別 public class JavaFXHelloWorld extends Application { @Override public void start(Stage primaryStage) { ... } public static void main(String[] args) { launch(args); } }其中javafx.stage.Stage類別為JavaFX最上層的容器 (Container),類似於Java Swing的JRootPane類別,用以置放Scene或SubScene物件。javafx.scene.Scene類別則是JavaFX Scene Graph,可藉以繪圖或配置各類GUI物件。
因此欲在原視窗中產生另一個新視窗,只要使用Stage類別則可,以下範例示範當點選原視窗中的按鈕時,則產生另一個新視窗:
public class StageDemo extends Application { @Override public void start(Stage primaryStage) { // Normal Button Button button = new Button(); button.setText("New Window"); button.setPrefSize(150, 20); button.setOnAction(event -> { newWindow(); }); BorderPane borderpane = new BorderPane(); borderpane.setCenter(button); // Set the Layout Pane of Scene Scene scene = new Scene(borderpane); // Set the title of Stage primaryStage.setTitle("Stage Demo"); // Set the width of Stage primaryStage.setWidth(250); // Set the height of Stage primaryStage.setHeight(150); primaryStage.setScene(scene); primaryStage.setResizable(false); // Show Stage primaryStage.show(); } private void newWindow(){ Label label1 = new Label("Name:"); Label label2 = new Label("Birthday:"); Label label3 = new Label("Tel.:"); TextField textfield1 = new TextField(); textfield1.setText("Athena"); textfield1.setPrefColumnCount(15); textfield1.selectAll(); textfield1.setTooltip(new Tooltip("Name")); TextField textfield2 = new TextField(); textfield2.setPrefColumnCount(15); textfield2.setAlignment(Pos.CENTER_RIGHT); textfield2.setCursor(Cursor.CROSSHAIR); textfield2.setTooltip(new Tooltip("Birthday")); TextField textfield3 = new TextField(); textfield3.setText("1234567890"); textfield3.setPrefColumnCount(15); textfield3.setAlignment(Pos.CENTER); textfield3.setCursor(Cursor.HAND); textfield3.selectAll(); textfield3.setTooltip(new Tooltip("Phone Number")); GridPane gridpane = new GridPane(); gridpane.setAlignment(Pos.CENTER); gridpane.setHgap(10); gridpane.setVgap(10); gridpane.setPadding(new Insets(5, 5, 5, 5)); gridpane.add(label1, 0, 0); gridpane.add(label2, 0, 1); gridpane.add(label3, 0, 2); gridpane.add(textfield1, 1, 0); gridpane.add(textfield2, 1, 1); gridpane.add(textfield3, 1, 2); // Set the Layout Pane of Scene Scene scene = new Scene(gridpane); Stage stage = new Stage(); // Set the title of Stage stage.setTitle("New Window"); // Set the width of Stage stage.setWidth(300); // Set the height of Stage stage.setHeight(150); stage.setScene(scene); stage.setResizable(false); // Show Stage stage.show(); } /** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } }【執行結果】
當點選原視窗中的按鈕時,則產生另一個新視窗:
[1] Java Official Web Site:http://www.oracle.com/technetwork/java/index.html
[2] JavaFX:http://www.oracle.com/technetwork/java/javafx
[3] JavaFX 8.0 API Specification.
[4] Java Platform, Standard Edition 8 API Specification.
© Chia-Hui Huang
訂閱:
文章 (Atom)