โครงการ Java Swing: คุณสมบัติ ข้อดี & กรอบงาน
เผยแพร่แล้ว: 2020-09-03Java Swing เป็นอินเทอร์เฟซโปรแกรมแอปพลิเคชันหรือ API ที่เกี่ยวข้องกับภาษาการเขียนโปรแกรม Java Swing เป็นชุดของไลบรารีที่หลากหลายที่ใช้ในการสร้าง GUI หรือส่วนต่อประสานกราฟิกกับผู้ใช้ ในบทความนี้ คุณจะเข้าใจได้ชัดเจนว่า Java Swing คืออะไร คุณสมบัติของ Java Swing ข้อดีของ Java Swing เหนือ API อื่นๆ ความสัมพันธ์ระหว่าง Java Swing, AWT และ SWT ก่อนที่จะลงรายละเอียดเกี่ยวกับ Java Swing เรามารวบรวมข้อมูลที่จำเป็นเกี่ยวกับ Java และ Graphical User Interface กันก่อน
สารบัญ
จาวาคืออะไร?
Java เป็นภาษาโปรแกรมเชิงวัตถุที่ใช้กันอย่างแพร่หลายเพื่อวัตถุประสงค์ต่างๆ โลกของเทคโนโลยีทุกวันนี้ก้าวหน้าไปมากจนเราสามารถพิชิตข้อมูลใด ๆ จากโทรศัพท์มือถือได้ แม้แต่การเล่นเกม มัลติทาสก์ และแอพพลิเคชั่นอื่นๆ ก็สามารถใช้ได้ในโทรศัพท์มือถือ สิ่งนี้เป็นไปได้สำหรับภาษา Java ระดับสูงเท่านั้น ภาษานี้ได้รับการพัฒนาในขั้นต้นด้วยแนวคิดเดียวคือ 'เขียนครั้งเดียว เรียกใช้ได้ทุกที่' ซึ่งหมายความว่าควรเขียนโค้ดเพียงครั้งเดียวและจะสามารถใช้ในอุปกรณ์ใดก็ได้
ดูเหมือนว่า Java จะตอบสนองความต้องการนั้นโดยผสมผสานแนวคิดของ 'Virtual Machine' เครื่องนี้มีชื่อว่า Java Virtual Machine หรือ JVM JVM จัดเตรียมสภาพแวดล้อมในการรันโค้ดและแอปพลิเคชัน
เมื่อเขียนโค้ดในภาษา Java แล้ว โค้ดจะถูกแปลงเป็น Java Bytecode Java Bytecode เป็นภาษาที่เข้าใจได้ของ Java Virtual Machine ด้วยการเป็นส่วนหนึ่งของ Java RUN ENVIRONMENT (JRE) เครื่อง Java Virtual จะคอมไพล์โค้ดและรันมัน
นอกเหนือจากการพัฒนาและแอปพลิเคชัน Android แล้ว Java ยังใช้ในรูปแบบส่วนต่อประสานผู้ใช้ เช่น GUI การพัฒนาเกม การพัฒนาซอฟต์แวร์ ฯลฯ เป็นภาษาระดับสูงที่สำคัญที่สุดภาษาหนึ่งที่โลกของวิทยาการคอมพิวเตอร์รู้จัก
อ่าน: 10 โครงการและหัวข้อ Python GUI ที่น่าตื่นเต้นสำหรับผู้เริ่มต้น

GUI คืออะไร?
GUI เป็นรูปแบบย่อของส่วนต่อประสานกราฟิกกับผู้ใช้ ทำหน้าที่เป็นสื่อกลางระหว่างผู้ใช้และซอฟต์แวร์ เมื่อซอฟต์แวร์ทำงาน มักจะเห็นวิดเจ็ตพร้อมองค์ประกอบแบบโต้ตอบ สิ่งนี้เรียกว่าส่วนต่อประสานผู้ใช้ ตัวอย่างทั่วไปของอินเทอร์เฟซผู้ใช้คือวิดเจ็ตข้อมูลรับรองการเข้าสู่ระบบ
ในภาษาการเขียนโปรแกรม Java Java SWING จะสร้างส่วนต่อประสานกับผู้ใช้
ทำความเข้าใจ Java Swing
Java Swing เป็น API หรือ Application Program Interface ซึ่งใช้เพื่อสร้าง Java GUI หรือส่วนต่อประสานกราฟิกกับผู้ใช้ เป็นส่วนสำคัญของ Java Foundation Classes (JFC) JFC ใช้เพื่อสร้างแอปพลิเคชันที่ใช้หน้าต่าง Java Swing เขียนด้วยภาษา Java ทั้งหมด และเป็นเวอร์ชันขยายของ AWT หรือ Abstract Windowing Toolkit
คุณสมบัติของ Java Swing
- Swing เป็นของ Java Foundation Classes (JFC) อย่างไรก็ตาม มันไม่เหมือนกันทั้งหมด JFC มีบันเดิลของไอเท็มอื่นๆ พร้อมกับ Swing
- Swing ได้นำเสนอความก้าวหน้าในการปฏิวัติที่สำคัญสามประการ ใช้ทรัพยากรน้อยลง เพิ่มส่วนประกอบที่ซับซ้อนยิ่งขึ้น และให้โปรแกรมเมอร์ควบคุมรูปลักษณ์และความรู้สึก
- รูปลักษณ์และสัมผัสแบบเสียบได้ช่วยให้โปรแกรมเมอร์ทำให้ซอฟต์แวร์มีลักษณะเหมือนกันในทุกแพลตฟอร์มตามที่ออกแบบมาสำหรับระบบเดียวกันนั้น
- Java Swing API GUI ประกอบด้วยสามส่วน, ส่วนประกอบ, คอนเทนเนอร์ และตัวจัดการเลย์เอาต์
อ่านเพิ่มเติม: แนวคิดโครงการ Java
Java AWT คืออะไร
AWT (Abstract Windowing Toolkit) ยังเป็น Java GUI ที่สร้าง API เป็น GUI เริ่มต้นที่สร้าง API ตั้งแต่เริ่มต้น มันถูกนำเข้าสู่ตลาดพร้อมกับ Java ตั้งแต่ปี 1995 SWING เป็นเพียง AWT เวอร์ชันขยาย ส่วนประกอบของ AWT มีน้ำหนักมาก ในกรณีของ AWT ชิ้นส่วนต่างๆ จะเจาะจงกับระบบหน้าต่างที่อยู่ด้านล่าง
เหตุใด Java Swing จึงได้รับการพัฒนา
เนื่องจากเป็น AWT เวอร์ชันเพิ่มเติม Swing จึงมอบอินเทอร์เฟซที่ซับซ้อนยิ่งขึ้น นอกจากนี้ยังรองรับรูปลักษณ์ที่เสียบได้ ส่วนประกอบของ Java Swing มีประสิทธิภาพและมีประโยชน์มากกว่า AWT สวิงยังได้เปรียบเหนือการประกอบวิ่ง เนื่องจากพบว่ามีความรอบคอบในการใช้งานมากขึ้น นอกจากนี้ยังมีองค์ประกอบที่รวมอยู่ใน Java Swing มากกว่า AWT
Swing ให้รูปลักษณ์ในอินเทอร์เฟซผู้ใช้ ซึ่งมักพบเห็นได้ในแอปพลิเคชันสมัยใหม่ Swing ยังช่วยให้โปรแกรมเมอร์เลือกระหว่างรูปลักษณ์ของแอปพลิเคชัน ระหว่างอุปกรณ์ภายในเครื่องหรือรูปลักษณ์โดยรวม
ข้อดีของการแกว่งตัวเหนือ AWT
- Java AWT ขึ้นอยู่กับแพลตฟอร์มและยังใช้ทรัพยากรจากระบบปฏิบัติการเพื่อรันโปรแกรม โปรแกรมจะมีรูปลักษณ์และรูปลักษณ์ที่แตกต่างกันในระบบปฏิบัติการอื่น เช่น Windows, Mac และ Linux
ในขณะที่ Java Swing ใช้ทรัพยากรที่ไม่ขึ้นกับแพลตฟอร์ม ดังนั้นในทุกระบบปฏิบัติการ เช่น Windows, Mac, Linus ซอฟต์แวร์จะมีลักษณะเหมือนกัน

- ส่วนประกอบของ Java AWT มีน้ำหนักมาก ในขณะที่องค์ประกอบของ Java Swing นั้นมีน้ำหนักเบา
- Java AWT ไม่รองรับรูปลักษณ์ที่เสียบได้ในขณะที่ Java Swing รองรับเช่นเดียวกัน
- Java Swing มีส่วนประกอบมากกว่า Java AWT องค์ประกอบที่รวมเข้าใหม่ ได้แก่ แผงแบบแท็บ ต้นไม้ รายการ ตาราง บานหน้าต่างเลื่อน ตัวเลือกสี
- Java AWT ไม่ติดตาม MVC ในขณะที่ Java Swing ติดตาม
MVC คือ Model View Controller ซึ่งโมเดลอ้างถึงข้อมูล View หมายถึงการนำเสนอ และ Controller ทำหน้าที่เป็นส่วนต่อประสานระหว่างโมเดลและมุมมอง
เช็คเอาท์: แนวคิดโครงการ Python
เฟรมเวิร์กของ Java Swing
- Java เป็นภาษาการเขียนโปรแกรมที่ไม่ขึ้นกับแพลตฟอร์ม ดังนั้น Swing ที่เขียนด้วย Java จึงไม่ขึ้นกับแพลตฟอร์มและสามารถทำงานในระบบปฏิบัติการทั้งหมดได้
- เนื่องจากเป็นสถาปัตยกรรมแบบโมดูลาร์ Swing จึงอนุญาตให้นำอินเทอร์เฟซเฉพาะจำนวนมากมาใช้งานร่วมกันได้ ด้วยความช่วยเหลือของกลไกการสืบทอดของ Java ผู้ใช้สามารถจัดเตรียมการปรับแต่งองค์ประกอบเหล่านี้เพื่อแทนที่กฎเริ่มต้น
- Swing อาศัยการดำเนินการรันไทม์และการกำหนดค่าทางอ้อม ซึ่งจะทำให้ตอบสนองต่อการเปลี่ยนแปลงตัวแปรในการตั้งค่าในขณะใช้งานในขณะใช้งาน ผู้ใช้สามารถตีความตัวเลือกรูปลักษณ์และความรู้สึกของตนเองได้ ซึ่งช่วยให้เกิดการกระจายองค์ประกอบที่สม่ำเสมอตลอดการใช้งาน แอปพลิเคชันที่มีกรอบงาน Swing สามารถ Hot-swap GUI ระหว่างรันไทม์ได้
- ส่วนประกอบ javax.swing.J จัดเตรียมส่วนประกอบทั้งหมดที่จำเป็นสำหรับ Swing รูปแบบ MVC ของ Swing นั้นประกอบเข้าด้วยกันอย่างหลวม ๆ Listener เหตุการณ์ถูกแนบกับอ็อบเจ็กต์โมเดลข้อมูลโดยทางโปรแกรม
ชั้นคอนเทนเนอร์
ในการสร้าง GUI เราต้องการอ็อบเจ็กต์คลาสคอนเทนเนอร์อย่างน้อยหนึ่งรายการ คลาสคอนเทนเนอร์สามารถมีส่วนประกอบต่างๆ ได้ คอนเทนเนอร์ส่วนใหญ่มีสามประเภท:
แผง: เป็นภาชนะล้วนๆ ไม่ใช่หน้าต่างในตัวมันเอง วัตถุประสงค์หลักของแผงคือการจัดองค์ประกอบบนหน้าต่าง
เฟรม: เป็นหน้าต่างที่ทำงานได้อย่างสมบูรณ์พร้อมชื่อและไอคอน
บทสนทนา: สามารถอธิบายได้ว่าเป็นหน้าต่างป๊อปอัปที่ปรากฏขึ้นเมื่อต้องแสดงข้อความ ไม่ใช่หน้าต่างที่ทำงานได้อย่างสมบูรณ์เช่น Frame
ความสัมพันธ์กับ AWT
Abstract Window Toolkit ย่อมาจาก AWT ใน Java เวอร์ชันเก่า AWT ได้มอบ API ที่ไม่ขึ้นกับแพลตฟอร์มสำหรับหน่วยอินเทอร์เฟซผู้ใช้ มีความพิเศษใน Abstract Window Toolkit; ส่วนประกอบทั้งหมดได้รับการควบคุมและดำเนินการโดยส่วนประกอบ Swing และไม่ต้องการการจัดสรรทรัพยากรดั้งเดิมในชุดเครื่องมือหน้าต่างของระบบปฏิบัติการ ด้วยเหตุนี้ ส่วนประกอบเหล่านี้จึงถูกเรียกว่าน้ำหนักเบา ในทางกลับกัน ส่วนประกอบ AWT ถือเป็นหน่วยที่มีน้ำหนักมาก
Swing API เป็นส่วนขยายที่กลมกลืนกันของ AWT หน่วยระดับบนสุดของ Java Swing เช่น JApplet, JDialogue, JFrame และ JWindow ช่วยในการขยาย AWT สิ่งนี้เกิดขึ้นเนื่องจากการอยู่ร่วมกันของส่วนประกอบ Java Swing (น้ำหนักเบา) และ AWT (น้ำหนักเบา) เนื่องจากปัญหา Z-order ผู้คนจึงไม่สามารถใช้ส่วนประกอบ Swing และ AWT ร่วมกันในหน้าต่างเดียวกันได้
ปัญหานี้เกิดขึ้นเมื่อ Java 6 update 10 เกิดขึ้น อย่างไรก็ตาม ปัญหาเหล่านี้ได้รับการแก้ไขแล้วใน Java เวอร์ชันใหม่กว่า จากนี้ไป ส่วนประกอบน้ำหนักเบาและหนักสามารถใช้ร่วมกันได้ในส่วนติดต่อผู้ใช้แบบกราฟิกเดียว
ความสัมพันธ์กับSWT
SWT เป็นรูปแบบย่อของ Standard Widget Toolkit ขณะนี้อยู่ภายใต้การอนุญาตของ Eclipse แม้ว่า IBM จะสร้างมันขึ้นมา การนำ Standard Widget Toolkit ไปใช้เป็นสัญลักษณ์ของหน่วยที่มีน้ำหนักมากของ Abstract Widget Toolkit สิ่งนี้สอดคล้องกับความภักดีมากขึ้นด้วยชุดเครื่องมือสร้างหน้าต่างโบราณที่ซ่อนอยู่ อย่างไรก็ตาม การเปิดรับแพลตฟอร์มนี้มีราคาแพงกว่าในรุ่นนี้
SWT กับ Java Swing
การเปรียบเทียบประสิทธิภาพของ Standard Widget Toolkit กับ Java Swing ทำให้เกิดข้อโต้แย้งไม่น้อย SWT ขึ้นอยู่กับ Java Interface ช้าลงเมื่อต้องมีการสื่อสารระหว่าง Java และ Graphical User Interface แม้ว่ามันจะทำงานเป็นโมเดลที่เร็วกว่าเมื่อ GUI เพียงอย่างเดียวจัดการกับแหล่งข้อมูล ดังนั้น ด้วยข้อโต้แย้งที่ให้มา จึงไม่มีข้อสังเกตสรุปเกี่ยวกับการเปรียบเทียบทั้งสองอย่างได้

เช็คเอาท์: การ จัดการเหตุการณ์ใน Java: นั้นคืออะไรและทำงานอย่างไร
ห่อ
ด้วยตลาดที่กำลังเติบโตของ Android และซอฟต์แวร์ที่เป็นมิตรกับผู้ใช้ Java มีความรอบคอบมากขึ้นทุกวันที่ผ่านไป ดังนั้นการใฝ่หาอาชีพในภาษา Java อาจรับประกันความมั่นคง การพัฒนาแอพ Android เป็นหนึ่งในตลาดที่เติบโตมากที่สุด Java Developers เป็นหนึ่งในงานที่จ่ายสูงที่สุดในอุตสาหกรรม
การพัฒนาแอปพลิเคชันจำเป็นต้องมีอินเทอร์เฟซแบบโต้ตอบสำหรับผู้ใช้ ซึ่งจะช่วยดึงดูดผู้ใช้ อินเทอร์เฟซเหล่านี้สร้างขึ้นโดยใช้ Java Swing Projects นอกจากนี้ Java มีความจำเป็นสำหรับการพัฒนาแบ็กเอนด์ โดยสรุป หากคุณต้องการประกอบอาชีพด้านการพัฒนาซอฟต์แวร์ ขอแนะนำให้ใช้คำสั่ง Java เพื่อให้เจริญเติบโต
เมื่อเวลาผ่านไปการพัฒนาเทคโนโลยีนำไปสู่การเรียนรู้ความรู้ใหม่ที่เพิ่มขึ้นอย่างรวดเร็ว การปรับปรุง Swing over AWT มีความสำคัญด้วยเหตุนี้ upGrad จึงมีชุดวิธีการเรียนรู้เพื่อช่วยคนนับล้านผ่านทางอินเทอร์เน็ต
หากคุณสนใจที่จะเจาะลึกลงไปใน Java และการพัฒนาซอฟต์แวร์แบบฟูลสแตก ให้ลองดู ประกาศนียบัตร PG ของ upGrad & IIIT-B ด้านการพัฒนาซอฟต์แวร์ฟูลสแตกที่ ออกแบบมาสำหรับมืออาชีพที่ทำงาน หลักสูตรนี้มีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง โครงการมากกว่า 9 โครงการ การมอบหมายงาน และความช่วยเหลือด้านงานกับบริษัทชั้นนำ