JavaFX - แอปพลิเคชัน
ในบทนี้เราจะพูดถึงโครงสร้างของแอปพลิเคชัน JavaFX โดยละเอียดและเรียนรู้การสร้างแอปพลิเคชัน JavaFX ด้วยตัวอย่าง
โครงสร้างแอปพลิเคชัน JavaFX
โดยทั่วไปแอปพลิเคชัน JavaFX จะมีองค์ประกอบหลักสามส่วนคือ Stage, Scene และ Nodes ดังแสดงในแผนภาพต่อไปนี้
เวที
สเตจ (หน้าต่าง) ประกอบด้วยอ็อบเจ็กต์ทั้งหมดของแอ็พพลิเคชัน JavaFX มันแสดงโดยStage คลาสของแพ็คเกจ javafx.stage. ขั้นตอนหลักถูกสร้างขึ้นโดยแพลตฟอร์มเอง วัตถุระยะที่สร้างขึ้นจะถูกส่งผ่านเป็นอาร์กิวเมนต์ไปยังไฟล์start() วิธีการของ Application ชั้นเรียน (อธิบายในหัวข้อถัดไป)
สเตจมีพารามิเตอร์สองตัวที่กำหนดตำแหน่งคือ Width และ Height. แบ่งเป็นพื้นที่เนื้อหาและของประดับตกแต่ง (แถบชื่อเรื่องและพรมแดน)
มีห้าประเภทของขั้นตอน -
- Decorated
- Undecorated
- Transparent
- Unified
- Utility
คุณต้องโทร show() วิธีการแสดงเนื้อหาของเวที
ฉาก
ฉากแสดงเนื้อหาทางกายภาพของแอ็พพลิเคชัน JavaFX ประกอบด้วยเนื้อหาทั้งหมดของกราฟฉาก ห้องเรียนScene ของแพ็คเกจ javafx.sceneแสดงถึงวัตถุฉาก ในกรณีตัวอย่างวัตถุฉากจะถูกเพิ่มเข้าไปในขั้นตอนเดียวเท่านั้น
คุณสามารถสร้างฉากโดยการสร้างฉากคลาส คุณสามารถเลือกขนาดของฉากได้โดยส่งขนาด (ความสูงและความกว้าง) พร้อมกับไฟล์root node ไปยังผู้สร้าง
กราฟฉากและโหนด
ก scene graphเป็นโครงสร้างข้อมูลแบบต้นไม้ (ตามลำดับชั้น) ที่แสดงเนื้อหาของฉาก ในทางตรงกันข้ามกnode เป็นวัตถุภาพ / กราฟิกของกราฟฉาก
โหนดอาจรวมถึง -
วัตถุทางเรขาคณิต (กราฟิก) (2D และ 3D) เช่น - วงกลมสี่เหลี่ยมผืนผ้ารูปหลายเหลี่ยมเป็นต้น
การควบคุม UI เช่น - ปุ่ม, ช่องทำเครื่องหมาย, ช่องตัวเลือก, พื้นที่ข้อความ ฯลฯ
คอนเทนเนอร์ (บานหน้าต่างเค้าโครง) เช่นบานหน้าต่างเส้นขอบบานหน้าต่างตารางบานหน้าต่างการไหลเป็นต้น
องค์ประกอบสื่อเช่นออบเจ็กต์เสียงวิดีโอและรูปภาพ
Node คลาสของแพ็คเกจ javafx.scene แทนโหนดใน JavaFX คลาสนี้เป็นซูเปอร์คลาสของโหนดทั้งหมด
ตามที่กล่าวไว้ก่อนหน้านี้โหนดมีสามประเภท -
Root Node - กราฟฉากแรกเรียกว่าโหนดรูท
Branch Node/Parent Node- โหนดที่มีโหนดลูกเรียกว่าโหนดสาขา / พาเรนต์ คลาสนามธรรมชื่อParent ของแพ็คเกจ javafx.scene เป็นคลาสฐานของโหนดพาเรนต์ทั้งหมดและโหนดพาเรนต์เหล่านั้นจะเป็นประเภทต่อไปนี้ -
Group- โหนดกลุ่มคือโหนดรวมที่มีรายการโหนดลูก เมื่อใดก็ตามที่โหนดกลุ่มถูกแสดงโหนดลูกทั้งหมดจะแสดงผลตามลำดับ การเปลี่ยนแปลงสถานะเอฟเฟกต์ที่ใช้กับกลุ่มจะถูกนำไปใช้กับโหนดลูกทั้งหมด
Region - เป็นคลาสพื้นฐานของการควบคุม UI ที่ใช้โหนด JavaFX ทั้งหมดเช่นแผนภูมิบานหน้าต่างและการควบคุม
WebView - โหนดนี้จัดการเว็บเอ็นจิ้นและแสดงเนื้อหา
Leaf Node- โหนดที่ไม่มีโหนดลูกเรียกว่าโหนดลีฟ ตัวอย่างเช่น Rectangle, Ellipse, Box, ImageView, MediaView เป็นตัวอย่างของโหนดลีฟ
จำเป็นต้องส่งโหนดรูทไปยังกราฟฉาก หากกลุ่มถูกส่งเป็นรูทโหนดทั้งหมดจะถูกตัดไปที่ฉากและการเปลี่ยนแปลงขนาดของฉากจะไม่ส่งผลต่อเลย์เอาต์ของฉาก
การสร้างแอปพลิเคชัน JavaFX
ในการสร้างแอ็พพลิเคชัน JavaFX คุณต้องสร้างอินสแตนซ์คลาสแอ็พพลิเคชันและใช้เมธอดนามธรรม start(). ในวิธีนี้เราจะเขียนโค้ดสำหรับ JavaFX Application
คลาสแอปพลิเคชัน
Application คลาสของแพ็คเกจ javafx.applicationเป็นจุดเริ่มต้นของแอ็พพลิเคชันใน JavaFX ในการสร้างแอ็พพลิเคชัน JavaFX คุณต้องสืบทอดคลาสนี้และใช้เมธอดนามธรรมstart(). ในวิธีนี้คุณต้องเขียนโค้ดทั้งหมดสำหรับกราฟิก JavaFX
ใน main คุณต้องเปิดแอปพลิเคชันโดยใช้ไฟล์ launch()วิธี. วิธีนี้เรียกว่าไฟล์start() วิธีการของคลาส Application ดังแสดงในโปรแกรมต่อไปนี้
public class JavafxSample extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
/*
Code for JavaFX application.
(Stage, scene, scene graph)
*/
}
public static void main(String args[]){
launch(args);
}
}
ภายใน start() ในการสร้างแอปพลิเคชัน JavaFX ทั่วไปคุณต้องทำตามขั้นตอนที่ระบุด้านล่าง -
เตรียมกราฟฉากพร้อมโหนดที่ต้องการ
เตรียมฉากที่มีขนาดที่ต้องการและเพิ่มกราฟฉาก (โหนดรูทของกราฟฉาก) เข้าไป
จัดเตรียมเวทีและเพิ่มฉากลงในเวทีและแสดงเนื้อหาของเวที
การจัดเตรียมกราฟฉาก
ตามใบสมัครของคุณคุณต้องเตรียมกราฟฉากพร้อมโหนดที่จำเป็น เนื่องจากโหนดรูทเป็นโหนดแรกคุณจึงต้องสร้างโหนดรูท ในฐานะรูทโหนดคุณสามารถเลือกจากไฟล์Group, Region or WebView.
Group - โหนดกลุ่มแสดงโดยคลาสที่มีชื่อว่า Group ซึ่งเป็นของแพ็คเกจ javafx.sceneคุณสามารถสร้างโหนดกลุ่มได้โดยสร้างอินสแตนซ์คลาสนี้ดังที่แสดงด้านล่าง
Group root = new Group();
getChildren() วิธีการของ Group คลาสให้คุณมีวัตถุ ObservableListคลาสที่เก็บโหนด เราสามารถดึงวัตถุนี้และเพิ่มโหนดเข้าไปได้ดังภาพด้านล่าง
//Retrieving the observable list object
ObservableList list = root.getChildren();
//Setting the text object as a node
list.add(NodeObject);
นอกจากนี้เรายังสามารถเพิ่มวัตถุโหนดลงในกลุ่มได้เพียงแค่ส่งต่อไปยังไฟล์ Group คลาสและตัวสร้างในช่วงเวลาของการสร้างอินสแตนซ์ดังที่แสดงด้านล่าง
Group root = new Group(NodeObject);
Region - เป็นคลาสฐานของการควบคุม UI ที่ใช้โหนด JavaFX ทั้งหมดเช่น -
Chart - คลาสนี้เป็นคลาสพื้นฐานของแผนภูมิทั้งหมดและเป็นของแพ็คเกจ javafx.scene.chart.
คลาสนี้มีคลาสย่อยสองคลาสคือ - PieChart และ XYChart. ทั้งสองมีคลาสย่อยเช่นAreaChart, BarChart, BubbleChartฯลฯ ใช้เพื่อวาด XY-Plane Charts ประเภทต่างๆใน JavaFX
คุณสามารถใช้คลาสเหล่านี้เพื่อฝังแผนภูมิในแอปพลิเคชันของคุณ
Pane - บานหน้าต่างคือคลาสฐานของบานหน้าต่างเลย์เอาต์ทั้งหมดเช่น AnchorPane, BorderPane, DialogPaneฯลฯ คลาสนี้อยู่ในแพ็คเกจที่เรียกว่า - javafx.scene.layout.
คุณสามารถใช้คลาสเหล่านี้เพื่อแทรกเค้าโครงที่กำหนดไว้ล่วงหน้าในแอปพลิเคชันของคุณ
Control - เป็นคลาสพื้นฐานของส่วนควบคุมส่วนต่อประสานผู้ใช้เช่น Accordion, ButtonBar, ChoiceBox, ComboBoxBase, HTMLEditor, etc. This class belongs to the package javafx.scene.control.
คุณสามารถใช้คลาสเหล่านี้เพื่อแทรกองค์ประกอบ UI ต่างๆในแอปพลิเคชันของคุณ
ในกลุ่มคุณสามารถสร้างอินสแตนซ์ของคลาสที่กล่าวถึงข้างต้นและใช้เป็นโหนดรูทดังที่แสดงในโปรแกรมต่อไปนี้
//Creating a Stack Pane
StackPane pane = new StackPane();
//Adding text area to the pane
ObservableList list = pane.getChildren();
list.add(NodeObject);
WebView - โหนดนี้จัดการเว็บเอ็นจิ้นและแสดงเนื้อหา
ต่อไปนี้เป็นแผนภาพที่แสดงถึงลำดับชั้นคลาสโหนดของ JavaFX
การเตรียมฉาก
ฉาก JavaFX แสดงโดยไฟล์ Scene คลาสของแพ็คเกจ javafx.scene. คุณสามารถสร้างฉากโดยสร้างอินสแตนซ์คลาสนี้ดังที่แสดงในบล็อก cod ต่อไปนี้
ในขณะที่สร้างอินสแตนซ์จำเป็นต้องส่งผ่านอ็อบเจ็กต์รูทไปยังคอนสตรัคเตอร์ของคลาสฉาก
Scene scene = new Scene(root);
นอกจากนี้คุณยังสามารถส่งผ่านพารามิเตอร์สองประเภทที่แสดงถึงความสูงและความกว้างของฉากดังที่แสดงด้านล่าง
Scene scene = new Scene(root, 600, 300);
กำลังเตรียมเวที
นี่คือคอนเทนเนอร์ของแอ็พพลิเคชัน JavaFX ใด ๆ และมีหน้าต่างสำหรับแอ็พพลิเคชัน มันแสดงโดยStage คลาสของแพ็คเกจ javafx.stage. อ็อบเจ็กต์ของคลาสนี้ถูกส่งผ่านเป็นพารามิเตอร์ของstart() วิธีการของ Application ชั้นเรียน
การใช้วัตถุนี้คุณสามารถดำเนินการต่างๆบนพื้นที่งานได้ โดยหลักแล้วคุณสามารถดำเนินการดังต่อไปนี้ -
ตั้งชื่อสำหรับสเตจโดยใช้เมธอด setTitle().
แนบวัตถุฉากเข้ากับพื้นที่งานโดยใช้ setScene() วิธี.
แสดงเนื้อหาของฉากโดยใช้ปุ่ม show() วิธีการดังแสดงด้านล่าง
//Setting the title to Stage.
primaryStage.setTitle("Sample application");
//Setting the scene to Stage
primaryStage.setScene(scene);
//Displaying the stage
primaryStage.show();
วงจรชีวิตของแอปพลิเคชัน JavaFX
คลาส JavaFX Application มีสามวิธีวงจรชีวิตซึ่ง ได้แก่ -
start() - วิธีจุดเข้าใช้ที่จะเขียนโค้ดกราฟิก JavaFX
stop() - วิธีว่างที่สามารถลบล้างได้ที่นี่คุณสามารถเขียนตรรกะเพื่อหยุดแอปพลิเคชันได้
init() - วิธีการว่างเปล่าที่สามารถลบล้างได้ แต่คุณไม่สามารถสร้างเวทีหรือฉากในวิธีนี้ได้
นอกจากนี้ยังมีวิธีการแบบคงที่ที่ชื่อ launch() เพื่อเปิดแอปพลิเคชัน JavaFX
ตั้งแต่ launch()วิธีการเป็นแบบคงที่คุณต้องเรียกใช้จากบริบทคงที่ (โดยทั่วไปหลัก) เมื่อใดก็ตามที่เปิดแอปพลิเคชัน JavaFX การดำเนินการต่อไปนี้จะดำเนินการ (ตามลำดับเดียวกัน)
มีการสร้างอินสแตนซ์ของคลาสแอปพลิเคชัน
Init() เรียกว่าวิธีการ
start() เรียกว่าวิธีการ
ตัวเรียกใช้งานรอให้แอปพลิเคชันทำงานจนเสร็จและเรียกไฟล์ stop() วิธี.
การยุติแอ็พพลิเคชัน JavaFX
เมื่อปิดหน้าต่างสุดท้ายของแอ็พพลิเคชันแอ็พพลิเคชัน JavaFX จะถูกยกเลิกโดยปริยาย คุณสามารถปิดพฤติกรรมนี้ได้โดยส่งค่าบูลีน“ False” ไปยังวิธีการแบบคงที่ setImplicitExit() (ควรเรียกจากบริบทคงที่)
คุณสามารถยุติแอ็พพลิเคชัน JavaFX อย่างชัดเจนโดยใช้วิธีการ Platform.exit() หรือ System.exit(int).
ตัวอย่างที่ 1 - การสร้างหน้าต่างว่าง
ส่วนนี้จะสอนวิธีสร้างแอปพลิเคชันตัวอย่าง JavaFX ซึ่งแสดงหน้าต่างว่าง ต่อไปนี้เป็นขั้นตอน -
ขั้นตอนที่ 1: การสร้างคลาส
สร้างคลาส Java และสืบทอด Application คลาสของแพ็คเกจ javafx.application และใช้เมธอด start () ของคลาสนี้ดังนี้
public class JavafxSample extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
}
}
ขั้นตอนที่ 2: การสร้าง Group Object
ใน start() เมธอดสร้างอ็อบเจ็กต์กลุ่มโดยสร้างอินสแตนซ์คลาสที่ชื่อ Group ซึ่งเป็นของแพ็กเกจ javafx.sceneดังต่อไปนี้.
Group root = new Group();
ขั้นตอนที่ 3: การสร้างวัตถุฉาก
สร้างฉากโดยสร้างอินสแตนซ์คลาสที่มีชื่อว่า Scene ซึ่งเป็นของแพ็คเกจ javafx.scene. ในคลาสนี้ให้ส่งผ่านวัตถุกลุ่ม(root)สร้างขึ้นในขั้นตอนก่อนหน้า
นอกจากออบเจ็กต์รูทแล้วคุณยังสามารถส่งผ่านพารามิเตอร์สองตัวที่แสดงถึงความสูงและความกว้างของหน้าจอพร้อมกับอ็อบเจ็กต์ของคลาส Group ได้ดังนี้
Scene scene = new Scene(root,600, 300);
ขั้นตอนที่ 4: การตั้งชื่อของเวที
คุณสามารถตั้งชื่อเป็นพื้นที่งานโดยใช้ไฟล์ setTitle() วิธีการของ Stageชั้นเรียน primaryStage เป็นวัตถุ Stage ซึ่งส่งผ่านไปยังวิธีการเริ่มต้นของคลาสฉากเป็นพารามิเตอร์
ใช้ primaryStage ออบเจ็กต์ตั้งชื่อของฉากเป็น Sample Application ดังแสดงด้านล่าง
primaryStage.setTitle("Sample Application");
ขั้นตอนที่ 5: การเพิ่มฉากในเวที
คุณสามารถเพิ่มวัตถุ Scene ในพื้นที่งานโดยใช้วิธีการ setScene() ของคลาสชื่อ Stage. เพิ่มวัตถุ Scene ที่เตรียมไว้ในขั้นตอนก่อนหน้าโดยใช้วิธีนี้ดังที่แสดงด้านล่าง
primaryStage.setScene(scene);
ขั้นตอนที่ 6: การแสดงเนื้อหาของเวที
แสดงเนื้อหาของฉากโดยใช้วิธีการที่ชื่อ show() ของ Stage class ดังนี้.
primaryStage.show();
ขั้นตอนที่ 7: เปิดแอปพลิเคชัน
เรียกใช้แอ็พพลิเคชัน JavaFX โดยเรียกใช้วิธีการแบบคงที่ launch() ของ Application คลาสจากวิธีการหลักดังนี้
public static void main(String args[]){
launch(args);
}
ตัวอย่าง
โปรแกรมต่อไปนี้สร้างหน้าต่าง JavaFX ที่ว่างเปล่า บันทึกรหัสนี้ในไฟล์ที่มีชื่อJavafxSample.java
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class JavafxSample extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
//creating a Group object
Group group = new Group();
//Creating a Scene by passing the group object, height and width
Scene scene = new Scene(group ,600, 300);
//setting color to the scene
scene.setFill(Color.BROWN);
//Setting the title to Stage.
primaryStage.setTitle("Sample Application");
//Adding the scene to Stage
primaryStage.setScene(scene);
//Displaying the contents of the stage
primaryStage.show();
}
public static void main(String args[]){
launch(args);
}
}
คอมไพล์และเรียกใช้ไฟล์ java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้
javac JavafxSample.java
java JavafxSample
ในการดำเนินการโปรแกรมด้านบนจะสร้างหน้าต่าง JavaFX ดังที่แสดงด้านล่าง
ตัวอย่างที่ 2 - การวาดเส้นตรง
ในตัวอย่างก่อนหน้านี้เราได้เห็นวิธีสร้างสเตจว่างแล้วในตัวอย่างนี้ให้เราลองวาดเส้นตรงโดยใช้ไลบรารี JavaFX
ต่อไปนี้เป็นขั้นตอน -
ขั้นตอนที่ 1: การสร้างคลาส
สร้างคลาส Java และสืบทอด Application คลาสของแพ็คเกจ javafx.application และใช้ start() วิธีการของคลาสนี้ดังนี้
public class DrawingLine extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
}
}
ขั้นตอนที่ 2: การสร้างเส้น
คุณสามารถสร้างบรรทัดใน JavaFX ได้โดยสร้างอินสแตนซ์คลาสที่ชื่อ Line ซึ่งเป็นของแพ็คเกจ javafx.scene.shapeสร้างอินสแตนซ์คลาสนี้ดังนี้
//Creating a line object
Line line = new Line();
ขั้นตอนที่ 3: การตั้งค่าคุณสมบัติเป็นเส้น
ระบุพิกัดเพื่อลากเส้นบนระนาบ XY โดยตั้งค่าคุณสมบัติ startX, startY, endX และ endYโดยใช้วิธีการตั้งค่าตามลำดับดังที่แสดงในบล็อกรหัสต่อไปนี้
line.setStartX(100.0);
line.setStartY(150.0);
line.setEndX(500.0);
line.setEndY(150.0);
ขั้นตอนที่ 4: การสร้าง Group Object
ในเมธอด start () สร้างอ็อบเจ็กต์กลุ่มโดยสร้างอินสแตนซ์คลาสชื่อ Group ซึ่งเป็นของแพ็กเกจ javafx.scene
ส่งผ่านวัตถุ Line (โหนด) ที่สร้างขึ้นในขั้นตอนก่อนหน้าเป็นพารามิเตอร์ไปยังตัวสร้างของคลาสกลุ่มเพื่อเพิ่มลงในกลุ่มดังนี้ -
Group root = new Group(line);
ขั้นตอนที่ 5: การสร้างวัตถุฉาก
สร้างฉากโดยสร้างอินสแตนซ์คลาสที่มีชื่อว่า Scene ซึ่งเป็นของแพ็คเกจ javafx.scene. ในคลาสนี้ให้ส่งผ่านวัตถุกลุ่ม(root) ที่สร้างขึ้นในขั้นตอนก่อนหน้านี้
นอกจากออบเจ็กต์รูทแล้วคุณยังสามารถส่งผ่านพารามิเตอร์สองตัวที่แสดงถึงความสูงและความกว้างของหน้าจอพร้อมกับอ็อบเจ็กต์ของคลาส Group ได้ดังนี้
Scene scene = new Scene(group ,600, 300);
ขั้นตอนที่ 6: การตั้งชื่อของเวที
คุณสามารถตั้งชื่อเป็นพื้นที่งานโดยใช้ไฟล์ setTitle() วิธีการของ Stageชั้นเรียน primaryStage เป็นวัตถุ Stage ซึ่งส่งผ่านไปยังวิธีการเริ่มต้นของคลาสฉากเป็นพารามิเตอร์
ใช้ primaryStage ออบเจ็กต์ตั้งชื่อของฉากเป็น Sample Application ดังต่อไปนี้.
primaryStage.setTitle("Sample Application");
ขั้นตอนที่ 7: การเพิ่มฉากในเวที
คุณสามารถเพิ่มวัตถุ Scene ในพื้นที่งานโดยใช้วิธีการ setScene() ของคลาสชื่อ Stage. เพิ่มวัตถุ Scene ที่เตรียมไว้ในขั้นตอนก่อนหน้าโดยใช้วิธีนี้ดังต่อไปนี้
primaryStage.setScene(scene);
ขั้นตอนที่ 8: การแสดงเนื้อหาของเวที
แสดงเนื้อหาของฉากโดยใช้วิธีการที่ชื่อ show() ของ Stage class ดังนี้.
primaryStage.show();
ขั้นตอนที่ 9: เปิดแอปพลิเคชัน
เรียกใช้แอ็พพลิเคชัน JavaFX โดยเรียกใช้วิธีการแบบคงที่ launch() ของ Application คลาสจากวิธีการหลักดังนี้
public static void main(String args[]){
launch(args);
}
ตัวอย่าง
โปรแกรมต่อไปนี้แสดงวิธีสร้างเส้นตรงโดยใช้ JavaFX บันทึกรหัสนี้ในไฟล์ที่มีชื่อJavafxSample.java.
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Line;
import javafx.stage.Stage;
public class DrawingLine extends Application{
@Override
public void start(Stage stage) {
//Creating a line object
Line line = new Line();
//Setting the properties to a line
line.setStartX(100.0);
line.setStartY(150.0);
line.setEndX(500.0);
line.setEndY(150.0);
//Creating a Group
Group root = new Group(line);
//Creating a Scene
Scene scene = new Scene(root, 600, 300);
//Setting title to the scene
stage.setTitle("Sample application");
//Adding the scene to the stage
stage.setScene(scene);
//Displaying the contents of a scene
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
คอมไพล์และเรียกใช้ไฟล์ java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้
javac DrawingLine.java
java DrawingLine
ในการดำเนินการโปรแกรมด้านบนจะสร้างหน้าต่าง JavaFX ที่แสดงเส้นตรงดังที่แสดงด้านล่าง
ตัวอย่างที่ 3 - การแสดงข้อความ
นอกจากนี้เรายังสามารถฝังข้อความในฉาก JavaFX ตัวอย่างนี้แสดงวิธีการฝังข้อความใน JavaFX
ต่อไปนี้เป็นขั้นตอน -
ขั้นตอนที่ 1: การสร้างคลาส
สร้าง Java Class และสืบทอด Application คลาสของแพ็คเกจ javafx.application และใช้ start() วิธีการของคลาสนี้ดังนี้
public class DrawingLine extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
}
}
ขั้นตอนที่ 2: การฝังข้อความ
คุณสามารถฝังข้อความลงในฉาก JavaFX ได้โดยสร้างอินสแตนซ์คลาสที่ชื่อ Text ซึ่งเป็นของแพ็คเกจ javafx.scene.shapeสร้างอินสแตนซ์คลาสนี้
คุณสามารถสร้างอินสแตนซ์คลาสนี้ได้โดยการส่งข้อความที่จะฝังในรูปแบบสตริงหรือคุณสามารถสร้างวัตถุข้อความโดยใช้ตัวสร้างเริ่มต้นดังที่แสดงด้านล่าง
//Creating a Text object
Text text = new Text();
ขั้นตอนที่ 3: การตั้งค่าแบบอักษร
คุณสามารถตั้งค่าแบบอักษรเป็นข้อความโดยใช้ setFont() วิธีการของ Textชั้นเรียน วิธีนี้ยอมรับวัตถุแบบอักษรเป็นพารามิเตอร์ ตั้งค่าแบบอักษรของข้อความที่กำหนดเป็น 45 ดังที่แสดงด้านล่าง
//Setting font to the text
text.setFont(new Font(45));
ขั้นตอนที่ 4: การตั้งค่าตำแหน่งของข้อความ
คุณสามารถกำหนดตำแหน่งของข้อความบนระนาบ XY ได้โดยตั้งค่าพิกัด X, Y โดยใช้วิธีการตั้งค่าตามลำดับ setX() และ setY() ดังต่อไปนี้.
//setting the position of the text
text.setX(50);
text.setY(150);
ขั้นตอนที่ 5: ตั้งค่าข้อความที่จะเพิ่ม
คุณสามารถตั้งค่าข้อความที่จะเพิ่มโดยใช้เมธอด setText () ของคลาส Text วิธีนี้ยอมรับพารามิเตอร์สตริงที่แสดงข้อความที่จะเพิ่ม
text.setText("Welcome to Tutorialspoint");
ขั้นตอนที่ 6: การสร้าง Group Object
ใน start() เมธอดสร้างอ็อบเจ็กต์กลุ่มโดยสร้างอินสแตนซ์คลาสชื่อ Group ซึ่งเป็นของแพ็กเกจ javafx.scene.
ส่งผ่านวัตถุข้อความ (โหนด) ที่สร้างขึ้นในขั้นตอนก่อนหน้าเป็นพารามิเตอร์ไปยังตัวสร้างของคลาสกลุ่มเพื่อเพิ่มลงในกลุ่มดังนี้ -
Group root = new Group(text)
ขั้นตอนที่ 7: การสร้างวัตถุฉาก
สร้างฉากโดยสร้างอินสแตนซ์คลาสที่มีชื่อว่า Scene ซึ่งเป็นของแพ็คเกจ javafx.scene. ในคลาสนี้ให้ส่งผ่านวัตถุกลุ่ม(root)สร้างขึ้นในขั้นตอนก่อนหน้า
นอกจากออบเจ็กต์รูทแล้วคุณยังสามารถส่งผ่านพารามิเตอร์สองตัวที่แสดงถึงความสูงและความกว้างของหน้าจอพร้อมกับอ็อบเจ็กต์ของคลาส Group ได้ดังนี้
Scene scene = new Scene(group ,600, 300);
ขั้นตอนที่ 8: การตั้งชื่อของเวที
คุณสามารถตั้งชื่อเป็นพื้นที่งานโดยใช้ไฟล์ setTitle() วิธีการของ Stageชั้นเรียน primaryStage เป็นวัตถุ Stage ซึ่งส่งผ่านไปยังวิธีการเริ่มต้นของคลาสฉากเป็นพารามิเตอร์
ใช้ primaryStage ออบเจ็กต์ตั้งชื่อของฉากเป็น Sample Application ดังแสดงด้านล่าง
primaryStage.setTitle("Sample Application");
ขั้นตอนที่ 9: การเพิ่มฉากในเวที
คุณสามารถเพิ่มวัตถุ Scene ในพื้นที่งานโดยใช้วิธีการ setScene() ของคลาสชื่อ Stage. เพิ่มวัตถุ Scene ที่เตรียมไว้ในขั้นตอนก่อนหน้าโดยใช้วิธีนี้ดังต่อไปนี้
primaryStage.setScene(scene);
ขั้นตอนที่ 10: การแสดงเนื้อหาของเวที
แสดงเนื้อหาของฉากโดยใช้วิธีการที่ชื่อ show() ของ Stage class ดังนี้.
primaryStage.show();
ขั้นตอนที่ 11: เปิดแอปพลิเคชัน
เรียกใช้แอ็พพลิเคชัน JavaFX โดยเรียกใช้วิธีการแบบคงที่ launch() ของ Application คลาสจากวิธีการหลักดังนี้
public static void main(String args[]){
launch(args);
}
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรมสำหรับแสดงข้อความโดยใช้ JavaFX บันทึกรหัสนี้ในไฟล์ที่มีชื่อDisplayingText.java.
import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
public class DisplayingText extends Application {
@Override
public void start(Stage stage) {
//Creating a Text object
Text text = new Text();
//Setting font to the text
text.setFont(new Font(45));
//setting the position of the text
text.setX(50);
text.setY(150);
//Setting the text to be added.
text.setText("Welcome to Tutorialspoint");
//Creating a Group object
Group root = new Group();
//Retrieving the observable list object
ObservableList list = root.getChildren();
//Setting the text object as a node to the group object
list.add(text);
//Creating a scene object
Scene scene = new Scene(root, 600, 300);
//Setting title to the Stage
stage.setTitle("Sample Application");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
คอมไพล์และเรียกใช้ไฟล์ java ที่บันทึกไว้จากพรอมต์คำสั่งโดยใช้คำสั่งต่อไปนี้
javac DisplayingText.java
java DisplayingText
ในการดำเนินการโปรแกรมด้านบนจะสร้างหน้าต่าง JavaFX ที่แสดงข้อความดังที่แสดงด้านล่าง