Javafx เป็นไลบรารีมาตรฐานใหม่ที่ใช้ใน Java เพื่อสร้างแอปพลิเคชันกราฟิก แต่โปรแกรมเมอร์จำนวนมากยังคงยึดติดกับการใช้สวิงหรือแม้แต่ AWT นี่คือคำแนะนำบางอย่างเกี่ยวกับวิธีการสร้างแอพพลิเคชั่นที่ตอบสนองและตอบสนองได้อย่างรวดเร็วด้วยคุณสมบัติที่ยอดเยี่ยมใหม่ในชุดเครื่องมือ Javafx!
1. ค่าแอตทริบิวต์
หากคุณมีความเข้าใจอย่างถ่องแท้เกี่ยวกับส่วนประกอบ Javafx มือถือได้พบกับทรัพย์สิน เกือบทุกค่าในไลบรารี FX สามารถสังเกตได้ความกว้างของพาร์ติชันขนาดของภาพข้อความในฉลากรายการเด็กในรายการและสถานะของช่องทำเครื่องหมาย คุณลักษณะแบ่งออกเป็นทางเลือก: คุณลักษณะที่เขียนได้และแอตทริบิวต์ที่อ่านได้ ค่าที่เขียนได้สามารถแก้ไขได้ไม่ว่าจะใช้วิธีการตั้งค่าหรือโดยตรง Javafx จัดการกระบวนการจัดการเหตุการณ์และทำให้มั่นใจได้ว่าทุกองค์ประกอบที่ขึ้นอยู่กับคุณสมบัตินี้จะได้รับแจ้ง คุณสมบัติที่อ่านได้มีวิธีการที่ช่วยให้คุณได้รับการแจ้งเตือนเมื่อมีการแก้ไขค่าของพวกเขา
ตัวอย่าง:
// stringproperty name = new SimpleStringProperty ("emil"); // read-only outerbableBooleanValue nameispty = name.isempty ();2. ค่าผูก
เมื่อคุณมีค่าที่เขียนได้และอ่านได้คุณสามารถเริ่มกำหนดกฎเกี่ยวกับวิธีการที่เกี่ยวข้องกับค่าเหล่านี้ คุณสมบัติที่เขียนได้สามารถผูกพันกับคุณสมบัติที่อ่านได้ดังนั้นค่าของมันจะตรงกับคุณสมบัติที่อ่านได้เสมอ การผูกจะไม่เกิดขึ้นทันที แต่พวกเขาจะทำก่อนที่จะสังเกตเห็นค่า (และดูสิ่งที่ฉันทำที่นั่น) การผูกสามารถเป็นทางเดียวหรือสองทาง แน่นอนถ้าพวกเขาเป็นสองทิศทางคุณสมบัติทั้งสองจะต้องเขียนได้
ตัวอย่าง:
textfield fielda = ใหม่ textfield (); textfield fieldb = new textfield (); fielda.prefwidthProperty (). bind (fieldb.widthproperty ());
3. รายการที่สังเกตได้
คุณลักษณะไม่ได้เป็นเพียงสิ่งเดียวที่สามารถสังเกตได้ หากรายการถูกห่อหุ้มเป็นผู้สังเกตการณ์สมาชิกของรายการก็สามารถสังเกตได้ รูปแบบการตอบสนองของผู้สังเกตการณ์ค่อนข้างสูง คุณไม่เพียง แต่ได้รับการแจ้งเตือนเมื่อมีการแก้ไขรายการ แต่ยังดูว่ารายการได้รับการแก้ไขอย่างไร
ตัวอย่าง:
รายการ <string> otherList = arrays.aslist ("foo", "bar", "bar"); nepurseLelist <String> list = fxCollections.obServableList (อื่น ๆ ); list.addlistener ((listchangelistener.change < (change.wasadded ()) {System.out.println ("items" + change.getaddedsublist () + "ถูกเพิ่มเข้ามา"); list.set (1, "foo"); system.out.println ("รายการใหม่:" + รายการ);เอาต์พุตที่รันอยู่ของรหัสด้านบนมีดังนี้:
รายการเก่า: [foo, bar, bar] event.items [foo] ถูกเพิ่มเข้ามารายการ [bar] ถูกลบออกรายการใหม่: [foo, foo, bar]
อย่างที่คุณเห็นการดำเนินการตั้งค่าจะทำให้เกิดเหตุการณ์เพียงครั้งเดียว
4. StringConverter
บางครั้งคุณจะพบว่าคุณไม่จำเป็นต้องแยกค่าออกจากส่วนประกอบเมื่อคุณต้องการสร้างการเชื่อมโยง ตัวอย่างทั่วไปของเรื่องนี้คือคุณมี StringProperty พร้อมเส้นทางที่คุณได้รับจากฟิลด์ข้อความ หากคุณต้องการมีคุณสมบัติที่สังเกตได้ด้วยค่านี้แสดงเป็นเส้นทางคุณต้องสร้าง StringConverter สำหรับมัน
ตัวอย่าง:
textField filelocation = new TextField (); StringProperty location = fileLocation.TextProperty (); คุณสมบัติ <path> path = ใหม่ SimpleObjectProperty <> (); bindings.bindBidirectional (ตำแหน่ง, เส้นทาง, StringConverter ใหม่ <path> () {@Override สตริงสาธารณะ toString (พา ธ พา ธ ) {ส่งคืน path.toString ();} @Override พา ธ สาธารณะจากการสแตรต (สตริงสตริง) {return paths.get (String);คุณสมบัติของวัตถุไม่ใช่การผูกสองทางกับค่าของฟิลด์ข้อความ
5. การแสดงออก
การใช้คลาสการเชื่อมโยงด้านบนคุณสามารถสร้างนิพจน์ทุกประเภท ตัวอย่างเช่นคุณมีสองฟิลด์ข้อความที่อนุญาตให้ผู้ใช้ป้อนข้อมูล ตอนนี้ฉันต้องการกำหนดโดเมนแบบอ่านอย่างเดียวซึ่งจะมีสตริงเสมอ หากความยาวของสองสายเท่ากันทั้งสองสตริงจะผสมเข้าด้วยกันช่วงเวลาอักขระต่อตัวอักษรสำหรับการแสดงผล หากความยาวไม่เท่ากันข้อความความช่วยเหลือจะปรากฏขึ้น
ตัวอย่าง:
textfield first = new textfield (); textfield second = new textfield (); textfield mix = new textfield (); mix.textProperty (). bind (bindings.when (first.lengthProperty (). isequalto (second.lengthproperty ())) second.textproperty (). get (); สตริงที่มีความยาวเท่ากัน "));
นี่เป็นเพียงเล็กน้อยของคุณสมบัติมากมายของ Javafx หวังว่าคุณจะสามารถหาวิธีที่สร้างสรรค์มากขึ้นในการใช้ประโยชน์จากระบบกิจกรรมนี้!