Css văn bản màu xám
Hướng dẫn này cho thấy những lợi ích của việc sử dụng JavaFX FXML, một ngôn ngữ dựa trên XML cung cấp cấu trúc để xây dựng giao diện người dùng tách biệt với logic ứng dụng của mã của bạn Show Nếu bạn bắt đầu tài liệu này từ đầu, thì bạn đã thấy cách tạo một ứng dụng đăng nhập chỉ bằng JavaFX. Tại đây, bạn sử dụng FXML để tạo cùng một giao diện người dùng đăng nhập, tách biệt thiết kế ứng dụng khỏi logic ứng dụng, do đó giúp mã dễ bảo trì hơn. Giao diện người dùng đăng nhập mà bạn xây dựng trong hướng dẫn này được hiển thị trong Hướng dẫn này sử dụng NetBeans IDE. Đảm bảo rằng phiên bản NetBeans IDE mà bạn đang sử dụng hỗ trợ JavaFX 2. 2. Xem Yêu cầu hệ thống để biết chi tiết Thiết lập dự ánNhiệm vụ đầu tiên của bạn là thiết lập dự án JavaFX FXML trong NetBeans IDE
Tải tệp nguồn FXMLTệp đầu tiên bạn chỉnh sửa là tệp 7. Tệp này bao gồm mã để thiết lập lớp chính của ứng dụng và để xác định giai đoạn và cảnh. Cụ thể hơn đối với FXML, tệp sử dụng lớp 8, chịu trách nhiệm tải tệp nguồn FXML và trả về biểu đồ đối tượng kết quả Thực hiện các thay đổi được in đậm trong Ví dụ 4-1 FXMLVí dụ. java @Override public void start(Stage stage) throws Exception { Parent root = FXMLLoader.load(getClass().getResource("fxml_example.fxml")); Scene scene = new Scene(root, 300, 275); stage.setTitle("FXML Welcome"); stage.setScene(scene); stage.show(); } Một cách thực hành tốt là đặt chiều cao và chiều rộng của cảnh khi bạn tạo cảnh đó, trong trường hợp này là 300 x 275; Sửa đổi báo cáo nhập khẩuTiếp theo, chỉnh sửa tệp 9. Tệp này chỉ định giao diện người dùng được hiển thị khi ứng dụng khởi động. Nhiệm vụ đầu tiên là sửa đổi các câu lệnh nhập để mã của bạn trông giống như Ví dụ 4-2 Khai báo XML và Tuyên bố nhập khẩu Như trong Java, các tên lớp có thể đủ điều kiện (bao gồm cả tên gói) hoặc chúng có thể được nhập bằng cách sử dụng câu lệnh nhập, như được hiển thị trong. Nếu muốn, bạn có thể sử dụng các câu lệnh nhập cụ thể đề cập đến các lớp Tạo bố cục GridPaneỨng dụng Hello World do NetBeans tạo ra sử dụng bố cục 0. Đối với biểu mẫu đăng nhập, bạn sẽ sử dụng bố cục 0 vì bố cục này cho phép bạn tạo một lưới linh hoạt gồm các hàng và cột để bố trí các điều khiển Xóa bố cục 0 và các phần tử con của nó và thay thế bằng bố cục 0 trong Ví dụ 4-3 Bố cục GridPane Trong ứng dụng này, bố cục 0 là thành phần gốc của tài liệu FXML và như vậy có hai thuộc tính. Thuộc tính 4 là bắt buộc khi bạn chỉ định trình xử lý sự kiện dựa trên bộ điều khiển trong đánh dấu của mình. Thuộc tính 5 luôn được yêu cầu và chỉ định không gian tên 6 Phần còn lại của mã điều khiển căn chỉnh và khoảng cách của ngăn lưới. Thuộc tính căn chỉnh thay đổi vị trí mặc định của lưới từ trên cùng bên trái của cảnh sang trung tâm. Thuộc tính 7 quản lý khoảng cách giữa các hàng và cột, trong khi thuộc tính 8 quản lý khoảng cách xung quanh các cạnh của ngăn lưới Khi cửa sổ được thay đổi kích thước, các nút trong ngăn lưới được thay đổi kích thước theo các ràng buộc về bố cục của chúng. Trong ví dụ này, lưới vẫn ở trung tâm khi bạn mở rộng hoặc thu nhỏ cửa sổ. Các thuộc tính đệm đảm bảo có một vùng đệm xung quanh lưới khi bạn làm cho cửa sổ nhỏ hơn Thêm trường văn bản và mật khẩuNhìn lại, bạn có thể thấy rằng biểu mẫu đăng nhập yêu cầu tiêu đề “Chào mừng” và các trường văn bản và mật khẩu để thu thập thông tin từ người dùng. Mã trong là một phần của bố cục 0 và phải được đặt phía trên câu lệnh Ví dụ 4-4 Điều khiển trường văn bản, nhãn, trường văn bản và mật khẩu 2 Dòng đầu tiên tạo một đối tượng 0 và đặt giá trị văn bản của nó thành 1. Các thuộc tính 2 và 3 tương ứng với vị trí của điều khiển 0 trong lưới. Việc đánh số cho các hàng và cột trong lưới bắt đầu từ 0 và vị trí của điều khiển 0 được đặt thành (0,0), nghĩa là nó nằm trong cột đầu tiên của hàng đầu tiên. Thuộc tính 6 được đặt thành 2, làm cho tiêu đề Chào mừng kéo dài hai cột trong lưới. Bạn sẽ cần chiều rộng bổ sung này sau trong hướng dẫn khi bạn thêm biểu định kiểu để tăng kích thước phông chữ của văn bản lên 32 điểm Các dòng tiếp theo tạo một đối tượng 7 với văn bản 8 ở cột 0, hàng 1 và một đối tượng 9 ở bên phải đối tượng đó ở cột 1, hàng 1. Một đối tượng 7 và 21 khác được tạo và thêm vào lưới theo cách tương tự Khi làm việc với bố cục lưới, bạn có thể hiển thị các đường lưới, rất hữu ích cho mục đích gỡ lỗi. Trong trường hợp này, đặt thuộc tính 22 thành 23 bằng cách thêm câu lệnh 23 ngay sau câu lệnh 25. Sau đó, khi bạn chạy ứng dụng, bạn sẽ thấy các dòng cho các cột và hàng của lưới cũng như các thuộc tính khoảng cách, như minh họa trong Thêm một nút và văn bảnHai điều khiển cuối cùng cần thiết cho ứng dụng là điều khiển 26 để gửi dữ liệu và điều khiển 0 để hiển thị thông báo khi người dùng nhấn nút. mã là trong. Thêm mã này trước Ví dụ 4-5 HBox, Nút và Văn bản 1 Cần có ngăn 28 để đặt căn chỉnh cho nút khác với căn chỉnh mặc định được áp dụng cho các điều khiển khác trong bố cục 0. Thuộc tính 10 được đặt thành 11, đặt một nút ở dưới cùng của không gian theo chiều dọc và ở cạnh phải của không gian theo chiều ngang. Ngăn 28 được thêm vào lưới ở cột 1, hàng 4 Ngăn 28 có một con, một 26 với thuộc tính 15 được đặt thành 16 và thuộc tính 17 được đặt thành 18. Mặc dù FXML là một cách thuận tiện để xác định cấu trúc giao diện người dùng của ứng dụng, nhưng nó không cung cấp cách triển khai hành vi của ứng dụng. Bạn triển khai hành vi cho phương thức 18 bằng mã Java trong phần tiếp theo của hướng dẫn này, Việc gán một giá trị 40 cho một phần tử, như được hiển thị trong mã cho điều khiển 0, sẽ tạo một biến trong không gian tên của tài liệu mà bạn có thể tham khảo từ bất kỳ nơi nào khác trong mã. Mặc dù không bắt buộc nhưng việc xác định trường bộ điều khiển giúp làm rõ cách liên kết giữa bộ điều khiển và đánh dấu Thêm mã để xử lý một sự kiệnBây giờ làm cho điều khiển 0 hiển thị thông báo khi người dùng nhấn nút. Bạn làm điều này trong tệp 43. Xóa mã mà NetBeans IDE đã tạo và thay thế bằng mã trong Ví dụ 4-6 FXMLExampleController. java 4 Chú thích 44 được sử dụng để gắn thẻ các trường thành viên bộ điều khiển không công khai và các phương thức xử lý để đánh dấu FXML sử dụng. Phương thức 45 đặt biến 46 thành 47 khi người dùng nhấn nút Bạn có thể chạy ứng dụng ngay bây giờ để xem giao diện người dùng hoàn chỉnh. hiển thị kết quả khi bạn nhập văn bản vào hai trường và nhấp vào nút Đăng nhập. Nếu bạn gặp bất kỳ sự cố nào, thì bạn có thể so sánh mã của mình với ví dụ FXMLLogin Sử dụng ngôn ngữ kịch bản để xử lý sự kiệnLà một giải pháp thay thế cho việc sử dụng mã Java để tạo trình xử lý sự kiện, bạn có thể tạo trình xử lý bằng bất kỳ ngôn ngữ nào cung cấp công cụ tạo tập lệnh tương thích với JSR 223. Những ngôn ngữ như vậy bao gồm JavaScript, Groovy, Jython và Clojure Theo tùy chọn, bạn có thể thử sử dụng JavaScript ngay bây giờ
|