อ่าน 14 นาที
จาวาเอฟเอ็กซ์
JavaFX เป็น แพลตฟอร์มซอฟต์แวร์ สำหรับสร้างและส่งมอบ แอปพลิเคชันเดสก์ท็อป รวมถึง แอปพลิเคชันเว็บที่มีฟังก์ชัน การทำงานครบครัน ซึ่งสามารถทำงานได้บนอุปกรณ์หลากหลายประเภท JavaFX...
จาวาเอฟเอ็กซ์
| จาวาเอฟเอ็กซ์ | |
|---|---|
| นักพัฒนา | บริษัท ออราเคิล คอร์ปอเรชั่น |
| ปล่อย | 4 ธันวาคม พ.ศ. 2551 |
| เวอร์ชันเสถียร | |
| รุ่นทดลองใช้งาน | 27 |
| ระบบปฏิบัติการ | ชวา |
| แพลตฟอร์ม | ข้ามแพลตฟอร์ม |
| มีจำหน่ายใน | ชวา |
| พิมพ์ | กรอบงานแอปพลิเคชัน |
| ใบอนุญาต | GPL + ข้อยกเว้น classpath [ 3 ] |
| เว็บไซต์ |
|
| ที่เก็บข้อมูล |
|
| แพลตฟอร์ม Javaรุ่นต่างๆ |
|---|
|
JavaFXเป็นแพลตฟอร์มซอฟต์แวร์สำหรับสร้างและส่งมอบแอปพลิเคชันเดสก์ท็อปรวมถึงแอปพลิเคชันเว็บที่มีฟังก์ชันการทำงานครบครัน ซึ่งสามารถทำงานได้บนอุปกรณ์หลากหลายประเภท JavaFX รองรับคอมพิวเตอร์เดสก์ท็อปและเว็บเบราว์เซอร์บน ระบบปฏิบัติการ Microsoft Windows , Linux (รวมถึงRaspberry Pi ) และmacOSตลอดจนอุปกรณ์พกพาที่ใช้ระบบปฏิบัติการiOSและAndroidผ่านทาง Gluon Mobile
ด้วยการเปิดตัว JDK 11 ในปี 2018 Oracleได้ทำให้ JavaFX เป็นส่วนหนึ่งของOpenJDKภายใต้โครงการOpenJFX [ 4 ]เพื่อเพิ่มความเร็วในการพัฒนา[ 5 ]
JavaFXPorts แบบโอเพนซอร์สใช้งานได้กับ iOS (iPhone และ iPad) และ Android [ 6 ]ซอฟต์แวร์เชิงพาณิชย์ที่เกี่ยวข้องซึ่งสร้างขึ้นภายใต้ชื่อ "Gluon" รองรับแพลตฟอร์มมือถือเดียวกันพร้อมคุณสมบัติเพิ่มเติม รวมถึงเดสก์ท็อป[ 7 ]ซึ่งช่วยให้สามารถสร้างแอปพลิเคชันสำหรับเดสก์ท็อป อุปกรณ์ iOS และ Android ได้ด้วยฐานรหัสต้นฉบับเดียว
คุณสมบัติ
JavaFX 1.1 พัฒนาขึ้นบนแนวคิดของ "โปรไฟล์ทั่วไป" ที่ออกแบบมาเพื่อใช้งานได้กับอุปกรณ์ทุกประเภทที่ JavaFX รองรับ แนวทางนี้ทำให้ผู้พัฒนาสามารถใช้โมเดลการเขียนโปรแกรมทั่วไปในการสร้างแอปพลิเคชันสำหรับทั้งเดสก์ท็อปและอุปกรณ์เคลื่อนที่ และสามารถแชร์โค้ด กราฟิก และเนื้อหาต่างๆ ระหว่างเวอร์ชันเดสก์ท็อปและมือถือได้ เพื่อตอบสนองความต้องการในการปรับแต่งแอปพลิเคชันบนอุปกรณ์เฉพาะกลุ่ม แพลตฟอร์ม JavaFX 1.1 จึงมีAPIที่เฉพาะเจาะจงสำหรับเดสก์ท็อปหรือมือถือ ตัวอย่างเช่น โปรไฟล์ JavaFX Desktop ประกอบด้วยSwingและเอฟเฟกต์ภาพขั้นสูง JavaFX จัดเก็บสัญลักษณ์ทั้งหมดไว้ในเนมสเปซjavafx<link>
สำหรับผู้ใช้ปลายทาง ฟีเจอร์ "ลากเพื่อติดตั้ง" ช่วยให้พวกเขาสามารถลากวิดเจ็ต JavaFX ซึ่งเป็นแอปพลิเคชันที่อยู่ในเว็บไซต์ แล้ววางลงบนเดสก์ท็อปได้ แอปพลิเคชันจะไม่สูญเสียสถานะหรือบริบทแม้หลังจากปิดเบราว์เซอร์แล้ว นอกจากนี้ยังสามารถเปิดใช้งานแอปพลิเคชันอีกครั้งได้โดยการคลิกที่ทางลัดที่สร้างขึ้นโดยอัตโนมัติบนเดสก์ท็อปของผู้ใช้ พฤติกรรมนี้เปิดใช้งานได้ทันทีโดยกลไก Java applet ตั้งแต่การอัปเดต Java 6u10 และถูกนำไปใช้โดย JavaFX จากเลเยอร์ Java ที่อยู่เบื้องหลัง Sun ยกย่อง "ลากเพื่อติดตั้ง" ว่าเป็นการเปิดโมเดลการแจกจ่ายแบบใหม่และช่วยให้นักพัฒนา "หลุดพ้นจากเบราว์เซอร์" ได้
JavaFX 1.x มีชุดปลั๊กอินสำหรับ Adobe Photoshop และ Illustrator ที่ช่วยให้สามารถผสานกราฟิกขั้นสูงเข้ากับแอปพลิเคชัน JavaFX ได้โดยตรง ปลั๊กอินเหล่านี้สร้างโค้ด JavaFX Script ที่รักษาเลเยอร์และโครงสร้างของกราฟิกไว้ จากนั้นนักพัฒนาสามารถเพิ่มแอนิเมชันหรือเอฟเฟกต์ให้กับกราฟิกคงที่ที่นำเข้าได้ นอกจากนี้ยังมีเครื่องมือแปลงกราฟิก SVG (หรือที่รู้จักกันในชื่อ Media Factory) ที่ช่วยให้สามารถนำเข้ากราฟิกและดูตัวอย่างสินทรัพย์หลังจากการแปลงเป็นรูปแบบ JavaFX ได้[ 8 ]
ก่อนเวอร์ชัน 2.0 ของ JavaFX นักพัฒนาใช้ภาษาแบบประกาศที่มีการกำหนดประเภทแบบคงที่ที่เรียกว่าJavaFX Scriptเพื่อสร้างแอปพลิเคชัน JavaFX เนื่องจาก JavaFX Script ถูกคอมไพล์เป็นไบต์โค้ดของ Javaโปรแกรมเมอร์จึงสามารถใช้ โค้ด Javaแทนได้ แอปพลิเคชัน JavaFX ก่อนเวอร์ชัน 2.0 สามารถทำงานบนเดสก์ท็อปใดก็ได้ที่สามารถใช้งานJava SEได้ เช่นเดียวกับเวอร์ชันปัจจุบัน[ 9 ]
JavaFX 2.0 และเวอร์ชันต่อมาถูกนำไปใช้เป็นไลบรารี Java และแอปพลิเคชันที่ใช้ JavaFX เขียนด้วยโค้ด Java ปกติ ภาษาสคริปต์ถูกยกเลิกโดย Oracle อย่างไรก็ตาม การพัฒนายังคงดำเนินต่อไปอีกหลายปีในโครงการ Visage และสิ้นสุดลงในที่สุดในปี 2013 [ 10 ] [ 11 ]
Sun Microsystems ได้รับอนุญาตให้ใช้แบบอักษร เฉพาะ ที่ชื่อว่า Amble สำหรับอุปกรณ์ที่ใช้ JavaFX แบบอักษรตระกูลนี้ได้รับการออกแบบโดยPunchcutผู้เชี่ยวชาญด้านการออกแบบส่วนติดต่อผู้ใช้บนมือถือ และมีให้ใช้งานเป็นส่วนหนึ่งของ JavaFX SDK เวอร์ชัน 1.3
เว็บวิว
WebViewซึ่ง เป็นส่วนประกอบ ของเว็บเบราว์เซอร์ แบบฝังตัว ใช้เอนจินเบราว์เซอร์WebKit รองรับคุณสมบัติ HTML5 ทั่วไป เช่น แท็ก canvas, media, meter, progress, details และ summary รวมถึง MathML, SVG, JavaScript และ CSS แต่ไม่รองรับ WebAssembly
3 มิติ
ตั้งแต่ JavaFX 8 เป็นต้นมา JavaFX มีความสามารถด้าน 3 มิติ เช่น แสงแบบไดนามิก รูปทรงพื้นฐาน เมช การแมปพื้นผิว และอื่นๆ ซึ่งสามารถรวมเข้ากับฉากและฉากย่อยได้
JavaFX Mobile
JavaFX Mobile คือการนำแพลตฟอร์ม JavaFX มาใช้สำหรับแอปพลิเคชันเว็บที่มีฟังก์ชันการทำงานสูงบนอุปกรณ์พกพา แอปพลิเคชัน JavaFX Mobile 1.x สามารถพัฒนาได้ด้วยภาษาเดียวกันคือJavaFX Scriptเช่นเดียวกับแอปพลิเคชัน JavaFX 1.x สำหรับเบราว์เซอร์หรือเดสก์ท็อป และใช้เครื่องมือเดียวกันคือ JavaFX SDK และ JavaFX Production Suite แนวคิดนี้ทำให้สามารถใช้โค้ดเบสและกราฟิกเดียวกันสำหรับแอปพลิเคชันเดสก์ท็อปและมือถือได้ ด้วยการผสานรวมกับJava MEแอปพลิเคชัน JavaFX จึงสามารถเข้าถึงความสามารถของอุปกรณ์พกพา เช่นระบบไฟล์กล้องGPSบลูทูธหรือมาตรวัดความเร่งได้
JavaFX Mobile เป็นแพลตฟอร์มแอปพลิเคชันอิสระที่สร้างขึ้นบนภาษา Java สามารถทำงานได้บนระบบปฏิบัติการมือถือหลายระบบ รวมถึงAndroid , Windows Mobileและระบบปฏิบัติการเรียลไทม์ เฉพาะของแต่ละ บริษัท
JavaFX Mobile เปิดให้ใช้งานอย่างเป็นทางการในฐานะส่วนหนึ่งของการเปิดตัว JavaFX 1.1 ที่Sun Microsystems ประกาศ เมื่อวันที่ 12 กุมภาพันธ์ 2552
Sun วางแผนที่จะเปิดใช้งานการรองรับ JavaFX บนอุปกรณ์ต่างๆ โดยไม่ต้องตั้งค่าเพิ่มเติม โดยร่วมมือกับผู้ผลิตโทรศัพท์มือถือและผู้ให้บริการเครือข่ายมือถือเพื่อติดตั้ง JavaFX Mobile runtime ลงในโทรศัพท์มือถือล่วงหน้า JavaFX Mobile ที่ทำงานบน Android ได้รับการสาธิตในงานJavaOne 2008 และมีการประกาศความร่วมมือกับพันธมิตรบางราย (รวมถึงLG ElectronicsและSony Ericsson ) ในงานเปิดตัว JavaFX Mobile ในเดือนกุมภาพันธ์ 2009
ตัวอย่าง
ในการเริ่มต้นใช้งานแอปพลิเคชัน JavaFX คลาสหลักจะสืบทอดjavafx.application.Applicationและmain()เรียกเมธอดApplication::launchซึ่งภายในจะเรียกเมธอดApplication::startที่ถูกเขียนทับโดยคลาสหลักและทำหน้าที่เป็นจุดเริ่มต้นของแอปพลิเคชัน
แพ็คเกจorg.wikipedia.examples ;import javafx.application.Application ; import javafx.scene.Scene ; import javafx.scene.control.Button ; import javafx.scene.layout.StackPane ; import javafx.stage.Stage ;public class JavaFXExample extends Application { @Override public void start ( Stage primaryStage ) { Button button = new Button ( "Click Me!" ); button . setOnAction ( e -> System . out . println ( "Hello from JavaFX!" ));StackPane root = new StackPane ( button ); Scene scene = new Scene ( root , 300 , 200 );primaryStage.setTitle ( " JavaFX Example" ) ; primaryStage.setScene ( scene ) ; primaryStage.show ( ) ; }public static void main ( String [] args ) { launch ( args ); } }ส่วนประกอบ
แพลตฟอร์ม JavaFX ประกอบด้วยส่วนประกอบต่อไปนี้:
- JavaFX SDK : ประกอบด้วยสิ่งต่างๆ มากมาย เช่น กราฟิก บริการสื่อ ไลบรารีข้อความแบบ Rich Text และ Web View
- NetBeans IDE สำหรับ JavaFX: NetBeans ที่มีพาเลทแบบลากและวางเพื่อเพิ่มวัตถุพร้อมการแปลง การใส่เอฟเฟกต์ และแอนิเมชัน รวมถึงชุดตัวอย่างและแนวทางปฏิบัติที่ดีที่สุด สำหรับผู้ใช้ Eclipse มีปลั๊กอินที่ได้รับการสนับสนุนจากชุมชนซึ่งโฮสต์อยู่บน e(fx)clipse
- JavaFX Scene Builder: ฟีเจอร์นี้ถูกนำมาใช้ใน JavaFX เวอร์ชัน 2.1 และเวอร์ชันต่อมา ส่วนติดต่อผู้ใช้ (UI) จะถูกสร้างขึ้นโดยการลากและวางคอนโทรลจากพาเลท เค้าโครงจะถูกบันทึกเป็นไฟล์ FXML ซึ่งเป็นรูปแบบ XML พิเศษ
โมดูล
JavaFX แบ่งออกเป็นโมดูล ดังต่อไป นี้[ 12 ]
| ชื่อ | คำอธิบาย |
|---|---|
javafx.base | กำหนด API หลักสำหรับชุดเครื่องมือ UI ของ JavaFX (เช่น API สำหรับการผูกข้อมูล คุณสมบัติ คอลเลกชัน และเหตุการณ์) |
javafx.controls | กำหนด API สำหรับส่วนควบคุม UI แผนภูมิ และธีมต่างๆ ในชุดเครื่องมือ UI ของ JavaFX |
javafx.fxml | กำหนด API ของ FXML ในชุดเครื่องมือ UI ของ JavaFX |
javafx.graphics | กำหนดโครงสร้างฉาก แอนิเมชัน เรขาคณิต และ API อื่นๆ ที่เกี่ยวข้องสำหรับชุดเครื่องมือ UI ของ JavaFX |
javafx.media | กำหนด API สำหรับการเล่นสื่อและเนื้อหาเสียงสำหรับชุดเครื่องมือ UI ของ JavaFX |
javafx.swing | กำหนด API สำหรับการสนับสนุนการทำงานร่วมกันระหว่าง JavaFX และSwingสำหรับชุดเครื่องมือ UI ของ JavaFX |
javafx.web | กำหนด API ของ WebView สำหรับชุดเครื่องมือ UI ของ JavaFX |
jdk.jsobject | กำหนด API สำหรับอ็อบเจ็กต์ JavaScript |
jfx.incubator.input | พัฒนากลไกสำหรับการปรับแต่งคอนโทรล JavaFX |
jfx.incubator.richtext | พัฒนาคอนโทรล RichTextArea สำหรับ JavaFX |
ประวัติศาสตร์
เผยแพร่หลังจากการอัปเดตเวอร์ชัน
JavaFX เป็นส่วนหนึ่งของ JRE/JDK สำหรับJava 8 (วางจำหน่ายเมื่อวันที่ 18 มีนาคม 2014) และมีหมายเลขเดียวกัน คือ JavaFX 8 [ 13 ]
JavaFX 8 เพิ่มคุณสมบัติใหม่หลายอย่าง รวมถึง: [ 14 ]

- การสนับสนุนกราฟิก 3 มิติ[ 15 ] [ 16 ]
- การรองรับเซ็นเซอร์
- รองรับ MathML ใน JavaFX 8 Update 192
- รองรับการพิมพ์และข้อความแบบ Rich Text
- เทมเพลตไดอะล็อกทั่วไปเพื่อแทนที่ JOptionPane (ตั้งแต่ JavaFX 8u40) [ 17 ]
คุณสมบัติหลักของ JavaFX 9 คือการดึง API ส่วนตัวที่มีประโยชน์บางส่วนจากโค้ด JavaFX ออกมาเพื่อให้ API เหล่านั้นสามารถใช้งานได้ทั่วไป:
Oracle ประกาศเจตนาที่จะหยุดการรวม JavaFX ในการสร้างJDK 11 และเวอร์ชันต่อๆ ไป[ 19 ]ปัจจุบันไม่มีการรวม JavaFX ไว้ในเวอร์ชันล่าสุดแล้ว
JavaFX 11 เปิดตัวครั้งแรกในเดือนกันยายน 2018
- JavaFX 11.0.2 เป็นเวอร์ชันสาธารณะล่าสุดของ JavaFX 11 [ 20 ]
- JavaFX 11.0.16 เป็นเวอร์ชันล่าสุดของ JavaFX 11 สำหรับผู้ที่มีสัญญาการสนับสนุนระยะยาว[ 21 ]
- การสนับสนุน MathML
- FX Robot API
JavaFX 12 เริ่มวางจำหน่ายครั้งแรกในเดือนมีนาคม 2019
- JavaFX 12.0.1 [ 20 ]
- รองรับปุ่มเดินหน้า/ถอยหลังของเมาส์
- เมธอด VirtualFlow ที่ได้รับการป้องกันใหม่สำหรับการสืบทอดคลาสย่อย[ 22 ]
JavaFX 13 เปิดตัวในเดือนกันยายน 2019
- รองรับจอแสดงผลอีเปเปอร์
- รองรับการเรนเดอร์สื่อดั้งเดิมผ่าน WritableImages ที่รองรับโดย NIO ByteBuffers [ 23 ]
JavaFX 14 เปิดตัวในเดือนมีนาคม พ.ศ. 2563
- คุณสมบัติขนาดแท็บสำหรับข้อความและ TextFlow
- การสนับสนุน HTTP/2 ใน WebView [ 24 ]
JavaFX 15 เปิดตัวในเดือนกันยายน พ.ศ. 2563
- รองรับจอแสดงผล e-paper บนอุปกรณ์ i.MX6 [ 25 ]
JavaFX 16 เปิดตัวในเดือนมีนาคม พ.ศ. 2564
JavaFX 17 เปิดตัวในเดือนกันยายน 2021 จุดเด่น:
- ประเภทไฟสปอตไลท์ 3 มิติ
- โหลดรูปภาพและสไตล์ชีตจาก URI ข้อมูลแบบอินไลน์
- บันทึกเป็นไฟล์
- ตรวจสอบสถานะของปุ่ม CAPS LOCK และ NUM LOCK
- รองรับการใช้งานหลายหน้าจอในชุดเครื่องมือหน้าต่างสำหรับแพลตฟอร์มฝังตัว
JavaFX 18 เปิดตัวในเดือนมีนาคม 2022 จุดเด่น:
- รองรับ ตัวแปลงสัญญาณสื่อ H.265/HEVCในโปรแกรมเล่นวิดีโอ
- ประเภทแสงทิศทาง 3 มิติ
- พื้นหลังโปร่งใสใน WebView
- ตั้งค่าคุณสมบัติ "managed" ของโหนดจาก CSS
- วิธีการผลิตสำหรับขอบและพื้นหลัง
JavaFX 19 เปิดตัวในเดือนกันยายน 2022 จุดเด่น:
- รองรับการสตรีมสดผ่าน HTTP H.265/HEVC ในโปรแกรมเล่นวิดีโอ
- การผูกข้อมูลแบบ Fluent กับฟังก์ชันแลมบ์ดา: map, flatMap และ orElse
- :focus-visibility และ :focus-within เป็นคลาสเสมือนของ CSS
JavaFX 20 เปิดตัวในเดือนมีนาคม 2023 จุดเด่น:
- นโยบายการปรับขนาดที่จำกัดสำหรับ TableView และ TreeTableView
- ปรับปรุงวงจรชีวิตของสกินควบคุม UI (Skin::install)
- วิธีการจัดการผู้ฟังแบบง่ายและกำหนดได้ (ObservableValue::when) [ 26 ]
การเผยแพร่ล่วงหน้า
JavaFX Script ซึ่งเป็นส่วนประกอบการเขียนสคริปต์ของ JavaFX เริ่มต้นจากโครงการของ Chris Oliver ที่ชื่อว่า F3 [ 27 ]
Sun Microsystemsประกาศเปิดตัว JavaFX ครั้งแรกใน งานประชุม JavaOne Worldwide Java Developer ในเดือนพฤษภาคม 2550
ในเดือนพฤษภาคม 2551 Sun Microsystems ประกาศแผนการที่จะวางจำหน่าย JavaFX สำหรับเบราว์เซอร์และเดสก์ท็อปภายในไตรมาสที่สามของปี 2551 และ JavaFX สำหรับอุปกรณ์เคลื่อนที่ในไตรมาสที่สองของปี 2552 นอกจากนี้ Sun ยังประกาศข้อตกลงระยะยาวกับOn2 Technologies เพื่อนำความสามารถด้านวิดีโอที่ครอบคลุมมาสู่ตระกูลผลิตภัณฑ์ JavaFX โดยใช้ ตัวแปลงสัญญาณวิดีโอTrueMotion ของบริษัทตั้งแต่ปลายเดือนกรกฎาคม 2551 นักพัฒนาสามารถดาวน์โหลดเวอร์ชันพรีวิวของ JavaFX SDK สำหรับ Windows และ Macintosh รวมถึงปลั๊กอิน JavaFX สำหรับNetBeans 6.1ได้
การเผยแพร่เวอร์ชันหลักตั้งแต่ JavaFX 1.1 เป็นต้นไปจะมีชื่อเวอร์ชันตามชื่อถนนหรือย่านในซานฟรานซิสโกการเผยแพร่เวอร์ชันอัปเดตโดยทั่วไปจะไม่มีชื่อเวอร์ชัน[ 28 ]
เมื่อวันที่ 4 ธันวาคม พ.ศ. 2551 บริษัท Sun ได้เปิดตัว JavaFX เวอร์ชัน 1.0.2
JavaFX สำหรับการพัฒนาแอปพลิเคชันบนมือถือได้รับการเผยแพร่อย่างเป็นทางการในเวอร์ชัน JavaFX 1.1 (ชื่อ Franca [ 28 ] ) เมื่อวันที่ 12 กุมภาพันธ์ พ.ศ. 2552
JavaFX 1.2 (ชื่อ Marina [ 28 ] ) เปิดตัวที่JavaOneเมื่อวันที่ 2 มิถุนายน พ.ศ. 2552 การเปิดตัวครั้งนี้มีการแนะนำ: [ 29 ]
- รองรับเวอร์ชันเบต้าสำหรับLinuxและSolaris
- การควบคุมและเค้าโครงในตัว
- ส่วนควบคุมCSS ที่สามารถปรับแต่งธีมได้
- วิดเจ็ตแผนภูมิใน ตัว
- การจัดการ I/Oของ JavaFX ช่วยลดความแตกต่างระหว่าง อุปกรณ์ เดสก์ท็อปและอุปกรณ์เคลื่อนที่
- การปรับปรุงความเร็ว
- Windows Mobile Runtime พร้อม Sun Java Wireless Client
JavaFX 1.3 (ชื่อ Soma [ 28 ] ) ได้รับการเผยแพร่เมื่อวันที่ 22 เมษายน 2553 การเผยแพร่ครั้งนี้ได้แนะนำ: [ 30 ]
- การปรับปรุงประสิทธิภาพ
- การรองรับแพลตฟอร์มเพิ่มเติม
- ปรับปรุงการรองรับการควบคุมส่วนติดต่อผู้ใช้ให้ดียิ่งขึ้น
JavaFX เวอร์ชัน 1.3.1 เปิดตัวเมื่อวันที่ 21 สิงหาคม 2553 การเปิดตัวครั้งนี้ได้นำเสนอคุณสมบัติใหม่ดังต่อไปนี้:
- แอปพลิเคชัน JavaFX เริ่มทำงานได้อย่างรวดเร็ว
- แถบแสดงความคืบหน้าแบบกำหนดเองสำหรับการเริ่มต้นแอปพลิเคชัน
JavaFX 2.0 (ชื่อ Presidio [ 28 ] ) ได้รับการเผยแพร่เมื่อวันที่ 10 ตุลาคม พ.ศ. 2554 การเผยแพร่ครั้งนี้ได้นำเสนอ:
- ชุด API ใหม่ของ Java เปิดโอกาสให้ผู้พัฒนา Java ทุกคนสามารถใช้งาน JavaFX ได้โดยไม่ต้องเรียนรู้ภาษาสคริปต์ใหม่ การสนับสนุน JavaFX Script ถูกยกเลิกอย่างถาวร
- รองรับการผูกข้อมูลแบบ Lazy Binding ที่มีประสิทธิภาพสูง, นิพจน์การผูกข้อมูล, นิพจน์ลำดับที่ผูกข้อมูลแล้ว และการประเมินการผูกข้อมูลบางส่วนซ้ำ
- ยุติการสนับสนุนJavaFX Mobileแล้ว
- Oracle ประกาศความตั้งใจที่จะเปิดซอร์สโค้ดของ JavaFX
- JavaFX runtime กำลังเปลี่ยนไปใช้แบบเฉพาะแพลตฟอร์ม โดยใช้ความสามารถของระบบ เช่น ตัวแปลงสัญญาณวิดีโอที่มีอยู่ในระบบ แทนที่จะใช้ runtime แบบข้ามแพลตฟอร์มเพียงตัวเดียวเหมือนใน JavaFX 1.x
มีการปรับปรุงต่างๆ มากมายภายในไลบรารี JavaFX สำหรับการทำงานแบบมัลติเธรด API ของ Task ได้รับการอัปเดตเพื่อรองรับความสามารถในการทำงานแบบมัลติเธรดที่กระชับยิ่งขึ้น (เช่น คลาส JavaTaskBase ไม่จำเป็นอีกต่อไป เนื่องจาก API ทั้งหมดอยู่ในภาษา Java และข้อกำหนดในการมีอินเทอร์เฟซ callback และคลาสการใช้งาน Java ก็ไม่จำเป็นอีกต่อไป) นอกจากนี้ กราฟฉากได้รับการออกแบบเพื่อให้สามารถสร้างฉากบนเธรดพื้นหลังแล้วแนบเข้ากับฉาก "สด" ในลักษณะ ที่ปลอดภัยต่อเธรด
เมื่อวันที่ 26 พฤษภาคม 2554 Oracle ได้เปิดตัว JavaFX 2.0 เวอร์ชันเบต้า เวอร์ชันเบต้าดังกล่าวใช้งานได้เฉพาะกับระบบปฏิบัติการ Microsoft Windows XP, Windows Vista และ Windows 7 ทั้งแบบ 32 บิตและ 64 บิตเท่านั้น นอกจากนี้ยังมีเวอร์ชัน Early Access สำหรับMac OS Xสำหรับสมาชิกของ JavaFX Partner Program ในขณะนั้น ส่วนการรองรับ Linux นั้นวางแผนไว้สำหรับเวอร์ชันถัดไปของ JavaFX JavaFX 2.0 เปิดตัวโดยรองรับเฉพาะ Windows เท่านั้น การรองรับ Mac OS X ถูกเพิ่มเข้ามาใน JavaFX 2.1 และการรองรับ Linux ถูกเพิ่มเข้ามาใน JavaFX 2.2
JavaFX 2.0 ใช้ภาษา XML แบบประกาศใหม่ที่เรียกว่าFXML [ 31 ] [ 32 ]
เมื่อวันที่ 27 เมษายน พ.ศ. 2555 Oracle ได้ออก JavaFX เวอร์ชัน 2.1 [ 33 ]ซึ่งมีคุณสมบัติหลักดังต่อไปนี้: [ 34 ]
- เวอร์ชันแรกอย่างเป็นทางการสำหรับOS X (สำหรับเดสก์ท็อปเท่านั้น)
- รองรับH.264/MPEG-4 AVCและการเข้ารหัสเสียงขั้นสูง
- ข้อความCoolType
- การปรับปรุงส่วนติดต่อผู้ใช้ (UI) รวมถึงการควบคุมแบบกล่องคำสั่งผสม (combo box), แผนภูมิ (แผนภูมิซ้อน) และแถบเมนู
- คอมponent Webview ในปัจจุบันอนุญาตให้ JavaScript เรียกใช้เมธอดของ Java ได้แล้ว
เมื่อวันที่ 14 สิงหาคม พ.ศ. 2555 Oracle ได้ออก JavaFX เวอร์ชัน 2.2 [ 35 ]ซึ่งมีคุณสมบัติหลักดังต่อไปนี้: [ 36 ]
- รองรับระบบ Linux (รวมถึงปลั๊กอินและการเริ่มต้นเว็บ)
- ผ้าใบ
- ส่วนควบคุมใหม่: ตัวเลือกสี, การแบ่งหน้า
- รองรับการสตรีมสดผ่าน HTTP
- เหตุการณ์การสัมผัสและท่าทาง
- API สำหรับการปรับแต่งรูปภาพ
- บรรจุภัณฑ์ดั้งเดิม
JavaFX 2.2 เพิ่มตัวเลือกการบรรจุแบบใหม่ที่เรียกว่า Native Packaging ซึ่งช่วยให้สามารถบรรจุแอปพลิเคชันเป็น "ชุดบันเดิลแบบเนทีฟ" ได้ วิธีนี้ช่วยให้ผู้ใช้สามารถติดตั้งและเรียกใช้แอปพลิเคชันได้โดยไม่ต้องพึ่งพา JRE หรือ FX SDK ภายนอกใดๆ
ตั้งแต่ Oracle Java SE 7 อัปเดต 6 และ JavaFX 2.2 เป็นต้นไป JavaFX จะถูกรวมไว้ในการติดตั้งพร้อมกับแพลตฟอร์ม Oracle Java SE [ 13 ]
งานในอนาคต
Oracle ยังประกาศในเดือนพฤศจิกายน 2012 ว่าจะเปิดเผยซอร์สโค้ดของ Decora ซึ่งเป็นภาษา DSL Shaderสำหรับ JavaFX ที่อนุญาตให้สร้างShaderสำหรับOpenGLและDirect3D [ 37 ]
Oracle เขียนไว้ในแผนงานสนับสนุนลูกค้าว่าการแก้ไขใหม่ของ JavaFX จะยังคงได้รับการสนับสนุนบน Java SE 8 ไปจนถึงเดือนมีนาคม 2025 [ 38 ]ก่อนหน้านี้ Oracle ได้ประกาศว่าพวกเขากำลัง "ทำงานร่วมกับบุคคลที่สามที่สนใจเพื่อให้การสร้างและบำรุงรักษา JavaFX ในฐานะโมดูลโอเพนซอร์สที่สามารถแจกจ่ายแยกต่างหากทำได้ง่ายขึ้น" JavaFX จะยังคงได้รับการสนับสนุนต่อไปในอนาคตโดยบริษัท Gluon ในฐานะโมดูลที่สามารถดาวน์โหลดได้ นอกเหนือจาก JDK [ 39 ]
ความพร้อมใช้งาน
ณ เดือนมีนาคม 2014 JavaFX ได้ถูกนำไปใช้งานบนMicrosoft Windows , OS XและLinux [ 40 ] Oracle มีพอร์ตภายในของ JavaFX บนiOS และ Android [ 41 ] [ 42 ] การสนับสนุน ARM มีให้ใช้งานตั้งแต่ JavaFX 8 เป็นต้นไป[ 43 ]เมื่อวันที่ 11 กุมภาพันธ์ 2013 Richard Bair หัวหน้าสถาปนิกของ Client Java Platform ที่ Oracle ได้ประกาศว่า Oracle จะเปิดซอร์สโค้ดการใช้งานแพลตฟอร์ม JavaFX บน iOS และ Android ในอีกสองเดือนข้างหน้า[ 44 ] [ 45 ]
ตั้งแต่เวอร์ชัน 8u33 ของ JDK สำหรับ ARM เป็นต้นไป การสนับสนุน JavaFX Embedded ได้ถูกลบออกไปแล้ว[ 46 ]
การสนับสนุนจะยังคงดำเนินต่อไปสำหรับสถาปัตยกรรมที่ใช้ x86 [ 47 ]
มีการสร้างพอร์ตเชิงพาณิชย์ของ JavaFX สำหรับ Android และ iOS ภายใต้ชื่อ "Gluon" [ 7 ]
ใบอนุญาต
โมดูลต่างๆ ที่เคยประกอบกันเป็นรันไทม์ของ JavaFX มีใบอนุญาตหลายประเภท:
- คอมไพเลอร์ JavaFX [ 48 ] และ กราฟฉาก2 มิติ เวอร์ชันเก่ากว่า[ 49 ]ได้รับการเผยแพร่ภายใต้ใบอนุญาตGPL v2
- ปลั๊กอินNetBeansสำหรับ JavaFX ได้รับการอนุญาตแบบคู่ภายใต้GPL v2และCDDL [ 50 ]
ระหว่างการพัฒนาSunได้อธิบายว่าพวกเขาจะนำกลยุทธ์สำหรับโมเดลการอนุญาตใช้สิทธิ์ JavaFX มาใช้กับ JavaFX เวอร์ชันแรก[ 51 ]หลังจากการเปิดตัวในปี 2551 Jeet Kaul รองประธาน ฝ่ายซอฟต์แวร์ไคลเอ็นต์ ของ Sun ได้อธิบายว่าพวกเขาจะเผยแพร่ข้อกำหนดสำหรับ JavaFX และรูปแบบไฟล์ ที่เกี่ยวข้องในเร็วๆ นี้ และจะยังคงเปิดเผยซอร์สโค้ดของรันไทม์ JavaFX ต่อไป และแยกส่วนแกนหลักนี้ออกจากส่วนที่เป็นกรรมสิทธิ์ซึ่งได้รับอนุญาตจากบุคคลภายนอก[ 52 ]
ในงาน JavaOne 2011 บริษัท Oracleได้ประกาศว่า JavaFX 2.0 จะกลายเป็นโอเพนซอร์ส[ 31 ]ตั้งแต่เดือนธันวาคม 2011 Oracle ได้เริ่มเปิดเผยโค้ด JavaFX เป็นโอเพนซอร์สภายใต้GPL + ข้อยกเว้นการเชื่อมโยง[ 3 ] [ 53 ]
ในเดือนธันวาคม พ.ศ. 2555 Oracle ได้เปิดเผยซอร์สโค้ด JavaFX ส่วนใหม่บางส่วน: [ 54 ]
- คลาสแอนิเมชันและไทม์ไลน์
- กลไกการส่งมอบกิจกรรมและคลาสหลักอื่นๆ อีกมากมาย
- อินเทอร์เฟซเรนเดอร์ทรี และการใช้งานอินเทอร์เฟซนี้
- การนำรูปทรงเรขาคณิตและรูปร่างมาใช้
- ส่วนของ Java ในเอนจิ้นการเรนเดอร์ที่ใช้ในไปป์ไลน์การเรนเดอร์
- การสนับสนุนการบันทึก
ดูเพิ่มเติม
บรรณานุกรม
- Vos, Johan; Gao, Weiqi; Chin, Stephen; Iverson, Dean; Weaver, James L. (27 กรกฎาคม 2557). Pro JavaFX 8: คู่มือฉบับสมบูรณ์สำหรับการสร้างไคลเอ็นต์ Java สำหรับเดสก์ท็อป มือถือ และระบบฝังตัว . Apress . หน้า 616. ISBN 978-1-4302-6574-0เก็บถาวรจากต้นฉบับเมื่อวันที่ 24 ตุลาคม 2559 เรียกดูเมื่อวันที่ 29 ตุลาคม 2561
- วีเวอร์, เจมส์ แอล.; เกา, เว่ยฉี; ชิน, สตีเฟน; ไอเวอร์สัน, ดีน; วอส, โยฮัน (6 มีนาคม 2012). Pro JavaFX 2: คู่มือฉบับสมบูรณ์สำหรับไคลเอนต์ที่มีฟังก์ชันการทำงานครบครันด้วยเทคโนโลยี Java . สำนักพิมพ์ Apress . หน้า 640. ISBN 978-1-4302-6872-7เก็บถาวรจากต้นฉบับเมื่อวันที่ 18 มีนาคม 2555 เรียกดูเมื่อวันที่ 13 มีนาคม 2555
- Ebbers, Hendrik (7 กรกฎาคม 2014). การใช้งานส่วนควบคุม JavaFX 8 อย่างเชี่ยวชาญ . McGraw-Hill Education . หน้า 336. ISBN 978-0071833776เก็บถาวรจากต้นฉบับเมื่อวันที่ 6 กันยายน 2558 เรียกดูเมื่อวันที่ 9 กันยายน 2558
- Vivien, Vladimir (25 สิงหาคม 2553). คู่มือการพัฒนาแอปพลิเคชัน JavaFX 1.2 . สำนักพิมพ์ Packt . หน้า 332. ISBN 978-1-84719-894-5เก็บถาวรจากต้นฉบับเมื่อวันที่ 28 มกราคม 2553 เรียกดูเมื่อวันที่ 30 สิงหาคม 2553
- Jordan, Lucas (17 ธันวาคม 2009). JavaFX Special Effects: Taking Java RIA to the Extreme with Animation, Multimedia, and Game Elements . Apress . หน้า 300. doi : 10.1007/978-1-4302-2624-6 . ISBN 978-1-4302-2623-9เก็บถาวรจากต้นฉบับเมื่อวันที่ 1 กันยายน 2022 เรียกดูเมื่อวันที่ 1 กันยายน 2022
- มอร์ริส, ไซมอน (23 พฤศจิกายน 2552). JavaFX ในการใช้งานจริง . แมนนิง . หน้า 375. ISBN 978-1-933988-99-3เก็บถาวรจากต้นฉบับเมื่อวันที่ 12 มกราคม 2555 เรียกดูเมื่อวันที่ 18 กรกฎาคม 2555
- Topley, Kim (12 ตุลาคม 2552). คู่มือสำหรับนักพัฒนา JavaFX . Addison-Wesley Professional . หน้า 640. ISBN 978-0-321-60165-0เก็บถาวรจากต้นฉบับเมื่อวันที่ 15 มกราคม 2555 เรียกดูเมื่อวันที่ 29 พฤษภาคม 2552
- วีเวอร์, เจมส์ แอล.; เกา, เว่ยฉี; ชิน, สตีเฟน; ไอเวอร์สัน, ดีน (22 มิถุนายน 2552). แพลตฟอร์ม Pro JavaFX: Script, Desktop และ Mobile RIA ด้วยเทคโนโลยี Java . Apress . หน้า 500. ISBN 978-1-4302-1875-3เก็บถาวรจากต้นฉบับเมื่อวันที่ 1 กันยายน 2022 เรียกดูเมื่อวันที่ 1 กันยายน 2022
- Clarke, Jim; Connors, Jim; J. Bruno, Eric (15 มิถุนายน 2552). JavaFX: การพัฒนาแอปพลิเคชันอินเทอร์เน็ตที่ทันสมัย . Prentice Hall . หน้า 384. ISBN 978-0-13-701287-9เก็บถาวรจากต้นฉบับเมื่อวันที่ 15 มกราคม 2555 เรียกดูเมื่อวันที่ 29 พฤษภาคม 2552
- Anderson, Gail; Anderson, Paul (15 มิถุนายน 2552). Essential JavaFX . Prentice Hall . หน้า 360. ISBN 978-0-13-704279-1เก็บถาวรจากต้นฉบับเมื่อวันที่ 15 มกราคม 2555 เรียกดูเมื่อวันที่ 29 พฤษภาคม 2552
- วีเวอร์, เจมส์ แอล. (4 พฤษภาคม 2552). JavaFX Script: การเขียนสคริปต์ Java แบบไดนามิกสำหรับแอปพลิเคชันอินเทอร์เน็ต/ฝั่งไคลเอ็นต์ที่ซับซ้อน . สำนักพิมพ์ Apress . หน้า 200. ISBN 978-1-59059-945-7เก็บถาวรจากต้นฉบับเมื่อวันที่ 1 กันยายน 2022 เรียกดูเมื่อวันที่ 1 กันยายน 2022
ลิงก์ภายนอก
- เว็บไซต์อย่างเป็นทางการ
- บทเรียน JavaFX
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ จาวาเอฟเอ็กซ์
JavaFX เป็น แพลตฟอร์มซอฟต์แวร์ สำหรับสร้างและส่งมอบ แอปพลิเคชันเดสก์ท็อป รวมถึง แอปพลิเคชันเว็บที่มีฟังก์ชัน การทำงานครบครัน ซึ่งสามารถทำงานได้บนอุปกรณ์หลากหลายประเภท JavaFX...
คุณสมบัติ
JavaFX 1.1 พัฒนาขึ้นบนแนวคิดของ "โปรไฟล์ทั่วไป" ที่ออกแบบมาเพื่อใช้งานได้กับอุปกรณ์ทุกประเภทที่ JavaFX รองรับ แนวทางนี้ทำให้ผู้พัฒนาสามารถใช้โมเดลการเขียนโปรแกรมทั่วไปในการสร้างแอปพลิเคชันสำหรับทั้งเดสก์ท็อปและอุปกรณ์เคลื่อนที่ และสามารถแชร์โค้ด กราฟิก...
เว็บวิว
WebView ซึ่ง เป็นส่วนประกอบ ของเว็บเบราว์เซอร์ แบบฝังตัว ใช้ เอนจินเบราว์เซอร์ WebKit รองรับคุณสมบัติ HTML5 ทั่วไป เช่น แท็ก canvas, media, meter, progress, details และ summary รวมถึง MathML, SVG, JavaScript และ CSS แต่ไม่รองรับ WebAssembly
3 มิติ
ตั้งแต่ JavaFX 8 เป็นต้นมา JavaFX มีความสามารถด้าน 3 มิติ เช่น แสงแบบไดนามิก รูปทรงพื้นฐาน เมช การแมปพื้นผิว และอื่นๆ ซึ่งสามารถรวมเข้ากับฉากและฉากย่อยได้