JavaFX là cái gì?● Một giải pháp công nghệ cho GUI trên nền Java.. Giải pháp công nghệ cho việc tạo giao diện đồ họa người dùng dựa trên Swing và Java2D.. Là các ứng dụng độc lập được cà
Trang 1JavaFX là cái gì?
● Một giải pháp công nghệ cho GUI trên nền Java.
Giải pháp công nghệ cho việc tạo giao diện đồ họa
người dùng dựa trên Swing và Java2D
● Một scripting language.
Nó có ngữ pháp riêng bao gồm viết hàm, khai báo biến vòng lặp, biểu thức,
Trang 2Tạo sao Sun tạo JavaFX?
● Sức ép từ các đối thủ cạnh tranh.
Microsoft có Silverlight, Adoble có
Flash/Flex/Appolo,
● Sự pháp triển của Web 2.0.
● Định hướng cho thị trường các ứng dụng trên nền Swing.
Trang 3JavaFX chạy được ở đâu?
● Trên Desktop.
Là các ứng dụng độc lập được cài đặt trên hệ điều hành với JVM
● Trong các thiết bị di động.
Đặc biệt là thị trường mobile với các ứng dụng được phân phối trực tiếp với người sử dụng đầu cuối
● Trên Web.
Với Java WebStart và có thể đánh dấu sự trở lại của Applet
Trang 4Để chạy JavaFX?
● Cần 2 gói thư viện là Filters.jar, javafxrt.jar, swing-layout.jar.
● Run : java net.java.javafx.FXShell
HelloExample.fx.
Thực tế chúng là một ứng dụng Java nhận đầu vào là một scripting để chạy
Trang 6Ngữ pháp: Khai báo biến
● Giống như các scripting, không có sự rõ
ràng về kiểu dữ liệu, ví dụ: var x = “hello”.
● Hỗ trợ các kiểu dữ liệu cơ bản thường sử dụng là : String, Integer, Number, Boolean.
● Một số khác có thể được import từ Java
chẳng hạn lớp Date được lấy từ
java.util.Date.
Trang 7Ngữ pháp: cơ bản
● If-else, try-catch-throw exception, đều
giống Java.
●
● Expression về cơ bản là giống Java, tuy
nhiên chúng ta có thêm một số toán tử mang từ SQL, chẳng hạn như select, insert, delete làm
việc chủ yếu với mảng và bean
Trang 8Ngữ pháp: Loop
● While và do-while giống Java.
● For vay mượn từ Groovy và Ruby.
for (i in [0 10] where i % 2 == 0) {
System.out.println("i = {i}");
}
for (i in [1,3 10]) {
System.out.println("i = {i}");
}
Trang 9Ngữ pháp: Loop
● Vòng lặp hai chiều.
for (i in [0 10], j in [0 10]) {
System.out.println(i);
System.out.println(j);
}
trông gọn hơn rất nhiều
Trang 10Ngữ pháp: Java ở đâu?
● Là scripting language hướng đối tượng.
class Window extends AbstractFrame {
attribute screenx: Number;
operation Window.pack() {
frame.pack();
}
}
Trang 11Ngữ pháp: Java ở đâu?
● Class không có contructor.
● Không có setter dành cho bean.
● Trigger là mô hình được mang từ SQL
sang với select, delete, update,
● Có thể import các thư viện, lớp từ Java.
Trang 12Ngữ pháp: String Literals/Expressions
● var s = 'Hello'; hoặc var s = "Hello";
● var name = 'Nam';
var s = "Hello {name}"; // s = 'Hello Nam'
● var s = "Xin
moi
nguoi chu y";
● var answer = true;
var s = "The answer is {if answer then
"Yes" else "No"}"; // s = 'The answer is Yes'
Trang 13Ngữ pháp: Quoted Identifiers
● Định danh trùng lặp với từ khóa.
var <<while>> = 100;
● Gọi Java method.
import javax.swing.JTextArea;
var textArea = new JTextArea();
textArea.<<insert>>("Hello", 0);
Trang 14Ngữ pháp: Làm việc với mảng
● Khai báo: var student = ["Tùng","Thái",
“Thịt”,"Thỏ"];
● Khai báo: var nums = [0 3];//[0,1,2,3]
● Sử dụng: var so = nums[2];
● Sử dụng: so = nums[n|n > 2];
● Sử dụng:
var nums = [1,2,3,4];
var so = nums[ > 2];
Trang 15Query làm việc với mảng
● Thêm mới phần tử dùng insert.
insert Expression1 [as first | as last] into
Expression2
insert Expression1 before Expression2
insert Expression1 after Expression2
● Ví dụ:
var x = [1,2,3];
insert 10 after x[ == 10];
insert 12 before x[1];
insert 13 after x[ == 2];
Trang 16Query làm việc với mảng
● Loại bỏ phần tử, dùng delete.
delete variable
delete Expression.attribute
delete variable[predicate]
delete Expression.attribute[predicate]
● Ví dụ:
var x = [1,2,3];
delete x[ == 1]; // yields [1,2,3,10]
delete x[ >= 2]; // yields [1,2]
delete x; // yields []
Trang 17Danh sách bao hàm
● Cài :
class Lớphọc {
attribute họcsinh: String*;
}
● Dùng :
var lớp1 = Lớphọc {họcsinh: “Nguyen Van A”,
“Nguyễn Thị B”}
● select i from i in [1 n/2] where n % i == 0;