Jython - การใช้ไลบรารี Swing GUI
คุณสมบัติหลักอย่างหนึ่งของ Jython คือความสามารถในการใช้ไลบรารี Swing GUI ใน JDK การแจกแจงมาตรฐาน Python (มักเรียกว่า CPython) มีนามสกุลTkinter GUI libraryมาพร้อมกับมัน ไลบรารี GUI อื่น ๆ เช่นPyQt และ WxPython นอกจากนี้ยังมีให้ใช้งานด้วย แต่ไลบรารีวงสวิงมีชุดเครื่องมือ GUI ที่ไม่ขึ้นกับแพลตฟอร์ม
การใช้ไลบรารีวงสวิงใน Jython นั้นง่ายกว่ามากเมื่อเทียบกับการใช้ใน Java ใน Java จะต้องใช้คลาสที่ไม่ระบุชื่อเพื่อสร้างการโยงเหตุการณ์ ใน Jython เราสามารถส่งผ่านฟังก์ชันเพื่อวัตถุประสงค์เดียวกันได้
หน้าต่างระดับบนสุดพื้นฐานถูกสร้างขึ้นโดยการประกาศออบเจ็กต์ของไฟล์ JFrame classและตั้งค่าคุณสมบัติที่มองเห็นเป็นจริง ด้วยเหตุนี้คลาส Jframe จะต้องถูกนำเข้าจากแพ็คเกจสวิง
from javax.swing import JFrame
คลาส JFrame มีตัวสร้างหลายตัวที่มีจำนวนอาร์กิวเมนต์ต่างกัน เราจะใช้อันที่รับสตริงเป็นอาร์กิวเมนต์และตั้งเป็นหัวเรื่อง
frame = JFrame(“Hello”)
ตั้งค่าขนาดของเฟรมและคุณสมบัติตำแหน่งก่อนตั้งค่าคุณสมบัติที่มองเห็นเป็นจริง จัดเก็บรหัสต่อไปนี้เป็นframe.py.
from javax.swing import JFrame
frame = JFrame("Hello")
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.setLocation(100,100)
frame.setSize(300,200)
frame.setVisible(True)
เรียกใช้สคริปต์ด้านบนจากพรอมต์คำสั่ง มันจะแสดงผลลัพธ์ต่อไปนี้แสดงหน้าต่าง
ห้องสมุด Swing GUI มีให้ในรูปแบบ javax.swingแพ็คเกจใน Java คลาสคอนเทนเนอร์หลักJFrame และ JDialogตามลำดับมาจากคลาส Frame และ Dialog ซึ่งอยู่ในไลบรารี AWT การควบคุม GUI อื่น ๆ เช่นJLabel, JButton, JTextField, เป็นต้นมาจากคลาส JComponent
ภาพประกอบต่อไปนี้แสดงลำดับชั้นของ Swing Package Class
ตารางต่อไปนี้สรุปคลาสการควบคุม GUI ที่แตกต่างกันในไลบรารีวงสวิง -
ซีเนียร์ | ชั้นเรียนและคำอธิบาย |
---|---|
1 | JLabel วัตถุ JLabel เป็นส่วนประกอบสำหรับวางข้อความในคอนเทนเนอร์ |
2 | JButton คลาสนี้สร้างปุ่มที่มีป้ายกำกับ |
3 | JColorChooser JColorChooser มีบานหน้าต่างควบคุมที่ออกแบบมาเพื่อให้ผู้ใช้จัดการและเลือกสีได้ |
4 | JCheckBox JCheckBox เป็นส่วนประกอบแบบกราฟิกที่สามารถอยู่ในไฟล์ on (จริง) หรือ off (เท็จ) |
5 | JRadioButton คลาส JRadioButton เป็นส่วนประกอบกราฟิกที่สามารถอยู่ในสถานะเปิด (จริง) หรือปิด (เท็จ) ในกลุ่ม |
6 | JList คอมโพเนนต์ JList นำเสนอผู้ใช้ด้วยรายการข้อความแบบเลื่อน |
7 | JComboBox คอมโพเนนต์ JComboBox นำเสนอผู้ใช้ด้วยรายการแบบหล่นลง |
8 | JTextField วัตถุ JTextField เป็นส่วนประกอบข้อความที่อนุญาตให้แก้ไขข้อความบรรทัดเดียว |
9 | JPasswordField วัตถุ JPasswordField เป็นส่วนประกอบข้อความเฉพาะสำหรับการป้อนรหัสผ่าน |
10 | JTextArea วัตถุ JTextArea เป็นส่วนประกอบข้อความที่อนุญาตให้แก้ไขข้อความหลายบรรทัด |
11 | ImageIcon การควบคุม ImageIcon คือการใช้งานอินเทอร์เฟซไอคอนที่วาดไอคอนจากรูปภาพ |
12 | JScrollbar ตัวควบคุมแถบเลื่อนแสดงส่วนประกอบของแถบเลื่อนเพื่อให้ผู้ใช้สามารถเลือกจากช่วงของค่าได้ |
13 | JOptionPane JOptionPane จัดเตรียมกล่องโต้ตอบมาตรฐานที่แจ้งให้ผู้ใช้ทราบค่าหรือแจ้งให้พวกเขาทราบ |
14 | JFileChooser ตัวควบคุม JFileChooser แสดงถึงหน้าต่างโต้ตอบที่ผู้ใช้สามารถเลือกไฟล์ |
15 | JProgressBar เมื่องานดำเนินไปสู่ความสำเร็จแถบความคืบหน้าจะแสดงเปอร์เซ็นต์ความสำเร็จของงาน |
16 | JSlider JSlider ช่วยให้ผู้ใช้สามารถเลือกค่าแบบกราฟิกได้โดยการเลื่อนปุ่มภายในช่วงเวลาที่มีขอบเขต |
17 | JSpinner JSpinner เป็นฟิลด์อินพุตบรรทัดเดียวที่ให้ผู้ใช้เลือกตัวเลขหรือค่าอ็อบเจ็กต์จากลำดับ |
เราจะใช้การควบคุมเหล่านี้บางส่วนในตัวอย่างต่อไป