【參考資料】
[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)













