Java Swing Tutorial: Πώς να δημιουργήσετε ένα GUI στην Java με παραδείγματα

Πίνακας περιεχομένων:

Anonim

Τι είναι το Swing in Java;

Το Swing in Java είναι μια εργαλειοθήκη γραφικού περιβάλλοντος εργασίας χρήστη (GUI) που περιλαμβάνει τα στοιχεία GUI. Το Swing παρέχει ένα πλούσιο σύνολο widget και πακέτων για την κατασκευή εξελιγμένων στοιχείων GUI για εφαρμογές Java. Το Swing είναι μέρος του Java Foundation Classes (JFC), το οποίο είναι ένα API για προγράμματα Java που παρέχουν GUI.

Η βιβλιοθήκη Java Swing είναι χτισμένη πάνω από το Java Abstract Widget Toolkit ( AWT ), μια παλαιότερη, εξαρτώμενη από πλατφόρμα GUI toolkit. Μπορείτε να χρησιμοποιήσετε τα στοιχεία προγραμματισμού Java GUI όπως κουμπί, πλαίσιο κειμένου κ.λπ. από τη βιβλιοθήκη και δεν χρειάζεται να δημιουργήσετε τα στοιχεία από το μηδέν.

Σε αυτό το σεμινάριο Java Swing, θα μάθετε-

  • Τι είναι το Swing in Java;
  • Τι είναι μια κατηγορία κοντέινερ;
  • Τι είναι το GUI στην Java;
  • Παράδειγμα Java GUI
  • Διαχείριση διάταξης Java
  • Java BorderLayout
  • Java FlowLayout
  • Java GridBagLayout

Διάγραμμα Ιεραρχίας κλάσης Java Swing

Διάγραμμα Ιεραρχίας Τάξης Swing Java

Όλα τα στοιχεία στο Java Swing είναι JComponent που μπορούν να προστεθούν σε κλάσεις κοντέινερ.

Τι είναι μια κατηγορία κοντέινερ;

Οι κλάσεις κοντέινερ είναι τάξεις που μπορούν να έχουν άλλα στοιχεία σε αυτό. Έτσι, για τη δημιουργία ενός Java GUI, χρειαζόμαστε τουλάχιστον ένα αντικείμενο κοντέινερ. Υπάρχουν 3 τύποι δοχείων Java Swing.

  1. Πάνελ : Είναι ένα καθαρό δοχείο και δεν είναι από μόνο του ένα παράθυρο. Ο μοναδικός σκοπός ενός πάνελ είναι να οργανώσει τα στοιχεία σε ένα παράθυρο.
  2. Πλαίσιο : Είναι ένα πλήρως λειτουργικό παράθυρο με τίτλο και εικονίδια.
  3. Διάλογος : Μπορεί να θεωρηθεί σαν ένα αναδυόμενο παράθυρο που αναδύεται όταν πρέπει να εμφανίζεται ένα μήνυμα. Δεν είναι ένα πλήρως λειτουργικό παράθυρο όπως το Frame.

Τι είναι το GUI στην Java;

Το GUI (Γραφικό περιβάλλον εργασίας χρήστη) στην Java είναι ένα εύχρηστο εργαλείο δημιουργίας οπτικής εμπειρίας για εφαρμογές Java. Είναι κυρίως κατασκευασμένο από γραφικά στοιχεία όπως κουμπιά, ετικέτες, παράθυρα κ.λπ. μέσω των οποίων ο χρήστης μπορεί να αλληλεπιδράσει με μια εφαρμογή. Το GUI παίζει σημαντικό ρόλο στη δημιουργία εύκολων διεπαφών για εφαρμογές Java.

Παράδειγμα Java GUI

Τώρα σε αυτό το Swing Java Tutorial, ας καταλάβουμε το GUI με Java Swing παραδείγματα.

Παράδειγμα : Για να μάθετε προγραμματισμό Java GUI σε αυτόν τον οδηγό Java GUI Βήμα 1) Αντιγράψτε τον ακόλουθο κώδικα σε έναν επεξεργαστή

import javax.swing.*;class gui{public static void main(String args[]){JFrame frame = new JFrame("My First GUI");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300,300);JButton button = new JButton("Press");frame.getContentPane().add(button); // Adds Button to content pane of frameframe.setVisible(true);}}

Βήμα 2) Αποθήκευση, μεταγλώττιση και εκτέλεση του κώδικα.Βήμα 3) Τώρα ας προσθέσουμε ένα κουμπί στο πλαίσιο μας. Αντιγράψτε τον ακόλουθο κώδικα σε ένα πρόγραμμα επεξεργασίας από το δεδομένο παράδειγμα Java GUI

import javax.swing.*;class gui{public static void main(String args[]){JFrame frame = new JFrame("My First GUI");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300,300);JButton button1 = new JButton("Press");frame.getContentPane().add(button1);frame.setVisible(true);}}

Βήμα 4) Εκτελέστε τον κώδικα. Θα λάβετε ένα μεγάλο κουμπί

Βήμα 5) Τι γίνεται με την προσθήκη δύο κουμπιών; Αντιγράψτε τον ακόλουθο κώδικα σε πρόγραμμα επεξεργασίας.

import javax.swing.*;class gui{public static void main(String args[]){JFrame frame = new JFrame("My First GUI");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300,300);JButton button1 = new JButton("Button 1");JButton button2 = new JButton("Button 2");frame.getContentPane().add(button1);frame.getContentPane().add(button2);frame.setVisible(true);}}

Βήμα 6) Αποθήκευση, μεταγλώττιση και εκτέλεση του προγράμματος.Βήμα 7) Μη αναμενόμενη έξοδος =; Τα κουμπιά αλληλεπικαλύπτονται.

Διαχείριση διάταξης Java

Ο Διαχειριστής διάταξης χρησιμοποιείται για τη διάταξη (ή την τακτοποίηση) των στοιχείων java GUI μέσα σε ένα κοντέινερ. Υπάρχουν πολλοί διαχειριστές διάταξης, αλλά οι πιο συχνά χρησιμοποιούμενοι είναι-

Java BorderLayout

Μια BorderLayoutμέρη συστατικά σε πέντε τομείς: πάνω, κάτω, αριστερά, δεξιά και κέντρο. Είναι ο προεπιλεγμένος διαχειριστής διάταξης για κάθε Java JFrame

Java FlowLayout

FlowLayoutείναι ο προεπιλεγμένος διαχειριστής διάταξης για κάθε JPanel. Απλά απλώνει τα συστατικά σε μία σειρά η μία μετά την άλλη.

Java GridBagLayout

Είναι το πιο εξελιγμένο όλων των διατάξεων. Ευθυγραμμίζει τα στοιχεία τοποθετώντας τα μέσα σε ένα πλέγμα κελιών, επιτρέποντας στα τμήματα να εκτείνονται σε περισσότερα από ένα κελιά.

Βήμα 8) Τι θα λέγατε για τη δημιουργία ενός πλαισίου συνομιλίας όπως παρακάτω;

Προσπαθήστε να κωδικοποιήσετε τον εαυτό σας πριν δείτε το παρακάτω πρόγραμμα.

//Usually you will require both swing and awt packages// even if you are working with just swings.import javax.swing.*;import java.awt.*;class gui {public static void main(String args[]) {//Creating the FrameJFrame frame = new JFrame("Chat Frame");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 400);//Creating the MenuBar and adding componentsJMenuBar mb = new JMenuBar();JMenu m1 = new JMenu("FILE");JMenu m2 = new JMenu("Help");mb.add(m1);mb.add(m2);JMenuItem m11 = new JMenuItem("Open");JMenuItem m22 = new JMenuItem("Save as");m1.add(m11);m1.add(m22);//Creating the panel at bottom and adding componentsJPanel panel = new JPanel(); // the panel is not visible in outputJLabel label = new JLabel("Enter Text");JTextField tf = new JTextField(10); // accepts upto 10 charactersJButton send = new JButton("Send");JButton reset = new JButton("Reset");panel.add(label); // Components Added using Flow Layoutpanel.add(tf);panel.add(send);panel.add(reset);// Text Area at the CenterJTextArea ta = new JTextArea();//Adding Components to the frame.frame.getContentPane().add(BorderLayout.SOUTH, panel);frame.getContentPane().add(BorderLayout.NORTH, mb);frame.getContentPane().add(BorderLayout.CENTER, ta);frame.setVisible(true);}}