Swing ใน Java: รู้วิธีสร้าง GUI ด้วยตัวอย่าง



: รับแนวคิดของการสวิงใน java ด้วยลำดับชั้นของคลาสสวิงและตัวจัดการเลย์เอาต์พร้อมการสาธิตแอปพลิเคชัน GUI ที่ใช้งานได้จริง

Swing ใน java เป็นส่วนหนึ่งของคลาส Java foundation ซึ่งมีน้ำหนักเบาและเป็นอิสระจากแพลตฟอร์ม ใช้สำหรับสร้างแอปพลิเคชันที่ใช้หน้าต่าง ประกอบด้วยส่วนประกอบต่างๆเช่นปุ่มแถบเลื่อนช่องข้อความเป็นต้นการรวมส่วนประกอบเหล่านี้ทั้งหมดเข้าด้วยกันทำให้ส่วนติดต่อผู้ใช้แบบกราฟิก ในบทความนี้เราจะพูดถึงแนวคิดที่เกี่ยวข้องกับกระบวนการสร้างแอปพลิเคชันโดยใช้การแกว่งเข้า . ต่อไปนี้เป็นแนวคิดที่กล่าวถึงในบทความนี้:

Swing In Java คืออะไร?

Swing ใน Java เป็นชุดเครื่องมือ GUI ที่มีน้ำหนักเบาซึ่งมีวิดเจ็ตที่หลากหลายสำหรับการสร้างแอปพลิเคชันที่ใช้หน้าต่างที่เหมาะสม เป็นส่วนหนึ่งของ JFC (Java Foundation Classes) สร้างขึ้นจาก AWT API และเขียนด้วยภาษา . เป็นแพลตฟอร์มที่เป็นอิสระไม่เหมือน AWT และมีส่วนประกอบที่มีน้ำหนักเบา





การสร้างแอปพลิเคชันจะง่ายขึ้นเนื่องจากเรามีส่วนประกอบ GUI อยู่แล้วเช่นปุ่มช่องทำเครื่องหมายเป็นต้นซึ่งมีประโยชน์เพราะเราไม่จำเป็นต้องเริ่มใหม่ตั้งแต่ต้น

คลาสคอนเทนเนอร์

ซึ่งมีส่วนประกอบอื่น ๆ อยู่ในนั้นเรียกว่าเป็นคลาสคอนเทนเนอร์ สำหรับการสร้างแอปพลิเคชัน GUI จำเป็นต้องมีคลาสคอนเทนเนอร์อย่างน้อยหนึ่งคลาส



ต่อไปนี้เป็นคลาสคอนเทนเนอร์สามประเภท:

  1. แผง - ใช้เพื่อจัดระเบียบส่วนประกอบบนหน้าต่าง

  2. กรอบ - หน้าต่างที่ทำงานได้อย่างสมบูรณ์พร้อมไอคอนและชื่อเรื่อง



  3. Dialog - เป็นเหมือนหน้าต่างป๊อปอัป แต่ใช้งานได้ไม่เต็มที่เหมือนกรอบ

ความแตกต่างระหว่าง AWT และ Swing

AWT แกว่ง
  • ขึ้นอยู่กับแพลตฟอร์ม
  • แพลตฟอร์มอิสระ
  • ไม่เป็นไปตาม MVC
  • ติดตาม MVC
  • ส่วนประกอบที่น้อยกว่า
  • ส่วนประกอบที่ทรงพลังยิ่งขึ้น
  • ไม่รองรับรูปลักษณ์ที่เสียบปลั๊กได้
  • รองรับรูปลักษณ์แบบเสียบได้
  • เฮฟวี่เวท
  • น้ำหนักเบา

ลำดับชั้นคลาส Java Swing

ลำดับชั้นแกว่งใน java-edureka

คำอธิบาย : ส่วนประกอบทั้งหมดในวงสวิงเช่น JButton, JComboBox, JList, JLabel สืบทอดมาจากคลาส JComponent ซึ่งสามารถเพิ่มลงในคลาสคอนเทนเนอร์ได้ คอนเทนเนอร์คือหน้าต่างเช่นกรอบและกล่องโต้ตอบ ส่วนประกอบพื้นฐานของวงสวิงเป็นส่วนประกอบสำคัญของแอปพลิเคชัน gui ใด ๆ วิธีการเช่น setLayout จะแทนที่เค้าโครงเริ่มต้นในแต่ละคอนเทนเนอร์ คอนเทนเนอร์เช่น JFrame และ JDialog สามารถเพิ่มส่วนประกอบให้กับตัวมันเองได้เท่านั้น ต่อไปนี้เป็นส่วนประกอบบางส่วนพร้อมตัวอย่างเพื่อให้เข้าใจว่าเราสามารถใช้งานได้อย่างไร

คลาส JButton

ใช้เพื่อสร้างปุ่มที่มีป้ายกำกับ การใช้ ActionListener จะส่งผลให้เกิดการกระทำบางอย่างเมื่อกดปุ่ม มันสืบทอดคลาส AbstractButton และเป็นแพลตฟอร์มที่เป็นอิสระ

ตัวอย่าง:

นำเข้า javax.swing. * ตัวอย่างคลาสสาธารณะ {public static void main (String args []) {JFrame a = new JFrame ('example') JButton b = new JButton ('click me') b.setBounds (40,90, 85,20) a.add (b) a.setSize (300,300) a.setLayout (null) a.setVisible (true)}}

เอาท์พุต:

c ++ เรียงลำดับอาร์เรย์จากน้อยไปมาก

คลาส JTextField

สืบทอดคลาส JTextComponent และใช้เพื่ออนุญาตให้แก้ไขข้อความบรรทัดเดียว

ตัวอย่าง:

นำเข้า javax.swing. * public class ตัวอย่าง {public static void main (String args []) {JFrame a = new JFrame ('example') JTextField b = new JTextField ('edureka') b.setBounds (50,100,200,30) a .add (b) a.setSize (300,300) a.setLayout (null) a.setVisible (จริง)}}

เอาท์พุต:

คลาส JScrollBar

ใช้เพื่อเพิ่มแถบเลื่อนทั้งแนวนอนและแนวตั้ง

ตัวอย่าง:

นำเข้า javax.swing. * class ตัวอย่าง {example () {JFrame a = new JFrame ('example') JScrollBar b = new JScrollBar () b.setBounds (90,90,40,90) a.add (b) a. setSize (300,300) a.setLayout (null) a.setVisible (true)} public static void main (String args []) {new example ()}}

เอาท์พุต:

ชั้น JPanel

สืบทอดคลาส JComponent และมีพื้นที่สำหรับแอปพลิเคชันที่สามารถแนบส่วนประกอบอื่น ๆ ได้

import java.awt. * import javax.swing. * public class ตัวอย่าง {Example () {JFrame a = new JFrame ('example') JPanel p = new JPanel () p.setBounds (40,70,200,200) JButton b = new JButton ('คลิกฉัน') b.setBounds (60,50,80,40) p.add (b) a.add (p) a.setSize (400,400) a.setLayout (null) a.setVisible (true)} สาธารณะ หลักโมฆะคง (String args []) {new Example ()}}

เอาท์พุต:

JMenu Clas s

สืบทอดคลาส JMenuItem และเป็นส่วนประกอบเมนูแบบดึงลงซึ่งแสดงจากแถบเมนู

import javax.swing. * class ตัวอย่าง {JMenu menu JMenuItem a1, a2 Example () {JFrame a = new JFrame ('Example') menu = new JMenu ('options') JMenuBar m1 = new JMenuBar () a1 = new JMenuItem ( 'example') a2 = new JMenuItem ('example1') menu.add (a1) menu.add (a2) m1.add (เมนู) a.setJMenuBar (m1) a.setSize (400,400) a.setLayout (null) a .setVisible (true)} public static void main (String args []) {new Example ()}}

เอาท์พุต:

คลาส JList

มันสืบทอดคลาส JComponent วัตถุของคลาส JList แสดงถึงรายการข้อความ

วิธีการโอเวอร์โหลดและการแทนที่ใน java
import javax.swing. * public class ตัวอย่าง {Example () {JFrame a = new JFrame ('example') DefaultListModel l = new DefaultListModel () l.addElement ('first item') l.addElement ('second item') JList b = new JList (l) b.setBounds (100,100,75,75) a.add (b) a.setSize (400,400) a.setVisible (true) a.setLayout (null)} public static void main (String args [ ]) {ตัวอย่างใหม่ ()}}

เอาท์พุต:

คลาส JLabel

ใช้สำหรับวางข้อความในคอนเทนเนอร์ นอกจากนี้ยังสืบทอดคลาส JComponent

import javax.swing. * public class ตัวอย่าง {public static void main (String args []) {JFrame a = new JFrame ('example') JLabel b1 b1 = new JLabel ('edureka') b1.setBounds (40,40, 90,20) a.add (b1) a.setSize (400,400) a.setLayout (null) a.setVisible (true)}}

เอาท์พุต:

คลาส JComboBox

สืบทอดคลาส JComponent และใช้เพื่อแสดงเมนูป๊อปอัปของตัวเลือก

import javax.swing. * public class ตัวอย่าง {JFrame a Example () {a = new JFrame ('example') string courses [] = {'core java', 'advance java', 'java servlet'} JComboBox c = new JComboBox (หลักสูตร) ​​c.setBounds (40,40,90,20) a.add (c) a.setSize (400,400) a.setLayout (null) a.setVisible (true)} public static void main (String args [] ) {ตัวอย่างใหม่ ()}}

เอาท์พุต:

ตัวจัดการเค้าโครง

ในการจัดเรียงส่วนประกอบภายในคอนเทนเนอร์เราใช้ตัวจัดการโครงร่าง ต่อไปนี้เป็นตัวจัดการเลย์เอาต์ต่างๆ:

  1. เค้าโครงเส้นขอบ

  2. เค้าโครงโฟลว์

  3. เค้าโครง GridBag

    ถ้างบในแบบสอบถาม sql

เค้าโครงเส้นขอบ

ตัวจัดการโครงร่างเริ่มต้นสำหรับทุก JFrame คือ BorderLayout วางส่วนประกอบได้ไม่เกินห้าตำแหน่งซึ่ง ได้แก่ บนล่างซ้ายขวาและตรงกลาง

เค้าโครงโฟลว์

FlowLayout เพียงแค่วางส่วนประกอบในแถวทีละแถวโดยเป็นตัวจัดการโครงร่างเริ่มต้นสำหรับ JPanel ทุกตัว

เค้าโครง GridBag

GridBagLayout วางส่วนประกอบในตารางซึ่งช่วยให้ส่วนประกอบขยายมากกว่าหนึ่งเซลล์

ตัวอย่าง: Chat Frame

import javax.swing. * import java.awt. * class ตัวอย่าง {public static void main (String args []) {JFrame frame = new JFrame ('Chat Frame') frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) frame.setSize (400 , 400) JMenuBar ob = JMenuBar ใหม่ () JMenu ob1 = JMenu ใหม่ ('FILE') JMenu ob2 = JMenu ใหม่ ('Help') ob.add (ob1) ob.add (ob2) JMenuItem m11 = JMenuItem ใหม่ ('เปิด ') JMenuItem m22 = JMenuItem ใหม่ (' บันทึกเป็น ') ob1.add (m11) ob1.add (m22) แผง JPanel = JPanel ใหม่ () // มองไม่เห็นพาเนลในเอาต์พุต JLabel label = new JLabel (' Enter Text ') JTextField tf = new JTextField (10) // ยอมรับอักขระไม่เกิน 10 ตัว JButton send = new JButton (' Send ') การรีเซ็ต JButton = แผงใหม่ JButton (' รีเซ็ต ') เพิ่ม (ป้ายกำกับ) // ส่วนประกอบที่เพิ่มโดยใช้แผงเค้าโครงโฟลว์ .add (label) // ส่วนประกอบที่เพิ่มโดยใช้ Flow Layout panel.add (tf) panel.add (send) panel.add (reset) JTextArea ta = new JTextArea () frame.getContentPane (). add (BorderLayout.SOUTH, panel ) frame.getContentPane () เพิ่ม (BorderLayout.NORTH, tf) frame.getContentPane () เพิ่ม (Border Layout.CENTER, ta) frame.setVisible (จริง)}}

นี่เป็นตัวอย่างง่ายๆสำหรับการสร้าง GUI โดยใช้ Swing ใน Java

ในบทความนี้เราได้กล่าวถึงการสวิงใน Java และลำดับชั้นของคลาสสวิง Java ด้วยส่วนประกอบทั้งหมดที่มาพร้อมกับการแกว่งใน Java ทำให้ง่ายต่อการสร้างแอปพลิเคชัน GUI ที่เหมาะสมที่สุด ภาษาการเขียนโปรแกรม Java เป็นภาษาการเขียนโปรแกรมที่มีโครงสร้างและด้วยความต้องการที่เพิ่มขึ้นจึงมีความสำคัญอย่างยิ่งในการควบคุมแนวคิดทั้งหมดใน . หากต้องการเริ่มต้นการเรียนรู้และเป็นผู้เชี่ยวชาญในการเขียนโปรแกรม Java ให้ลงทะเบียนกับ Edureka’s .

มีคำถามสำหรับเรา? โปรดระบุสิ่งนี้ในส่วนความคิดเห็นของบทความ 'Swing In Java' และเราจะติดต่อกลับโดยเร็วที่สุด