Java Swing-zelfstudie: een GUI maken in Java met voorbeelden

Wat is Swing in Java?

Swing in Java is een grafische gebruikersinterface (GUI) -toolkit die de GUI-componenten bevat. Swing biedt een uitgebreide set widgets en pakketten om geavanceerde GUI-componenten voor Java-toepassingen te maken. Swing is een onderdeel van Java Foundation Classes (JFC), een API voor Java-programma's die GUI bieden.

De Java Swing-bibliotheek is gebouwd bovenop de Java Abstract Widget Toolkit ( AWT ), een oudere, platformafhankelijke GUI-toolkit. U kunt de Java GUI-programmeercomponenten zoals knop, tekstvak, enz. Uit de bibliotheek gebruiken en hoeft de componenten niet helemaal opnieuw te maken.

In deze zelfstudie over Java Swing leert u:

  • Wat is Swing in Java?
  • Wat is een containerklasse?
  • Wat is GUI in Java?
  • Java GUI-voorbeeld
  • Java Layout Manager
  • Java BorderLayout
  • Java FlowLayout
  • Java GridBagLayout

Java Swing class hiërarchiediagram

Java Swing Class-hiërarchiediagram

Alle componenten in Java Swing zijn JComponent die kunnen worden toegevoegd aan containerklassen.

Wat is een containerklasse?

Containerklassen zijn klassen die andere componenten kunnen bevatten. Dus voor het maken van een Java GUI hebben we minimaal één containerobject nodig. Er zijn 3 soorten Java Swing-containers.

  1. Paneel : het is een pure container en is geen venster op zich. Het enige doel van een paneel is om de componenten op een raam te ordenen.
  2. Frame : het is een volledig functionerend venster met de titel en pictogrammen.
  3. Dialoog : het kan worden gezien als een pop-upvenster dat tevoorschijn komt wanneer een bericht moet worden weergegeven. Het is geen volledig functionerend raam zoals de Frame.

Wat is GUI in Java?

GUI (Graphical User Interface) in Java is een gebruiksvriendelijke bouwer voor visuele ervaringen voor Java-toepassingen. Het is voornamelijk gemaakt van grafische componenten zoals knoppen, labels, vensters, enz. Waarmee de gebruiker kan communiceren met een applicatie. GUI speelt een belangrijke rol bij het bouwen van eenvoudige interfaces voor Java-applicaties.

Java GUI-voorbeeld

Laten we nu in deze Swing Java-zelfstudie de GUI begrijpen met Java Swing-voorbeelden.

Voorbeeld : om Java GUI-programmering te leren in deze Java GUI-zelfstudie Stap 1) Kopieer de volgende code naar een editor

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);}}

Stap 2) Bewaar, compileer en voer de code uit.Stap 3) Laten we nu een knop aan ons frame toevoegen. Kopieer de volgende code naar een editor vanuit het gegeven Java GUI-voorbeeld

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);}}

Stap 4) Voer de code uit. Je krijgt een grote knop

Stap 5) Hoe zit het met het toevoegen van twee knoppen? Kopieer de volgende code naar een editor.

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);}}

Stap 6) Bewaar, compileer en start het programma.Stap 7) Onverwachte output =? Knoppen overlappen elkaar.

Java Layout Manager

De lay-outmanager wordt gebruikt om de GUI-java-componenten in een container op te maken (of te rangschikken). Er zijn veel lay-outmanagers, maar de meest gebruikte zijn-

Java BorderLayout

A BorderLayoutplaatst componenten in maximaal vijf gebieden: boven, onder, links, rechts en midden. Het is de standaard lay-outmanager voor elk Java JFrame

Java FlowLayout

FlowLayoutis de standaard lay-outmanager voor elk JPanel. De componenten worden eenvoudig achter elkaar op een rij geplaatst.

Java GridBagLayout

Het is de meest geavanceerde van alle lay-outs. Het lijnt componenten uit door ze in een raster van cellen te plaatsen, waardoor componenten meer dan één cel kunnen beslaan.

Stap 8) Hoe zit het met het maken van een chatframe zoals hieronder?

Probeer jezelf te coderen voordat je naar het onderstaande programma kijkt.

//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);}}

Interessante artikelen...