Java Swingi õpetus: kuidas luua GUI-rakendust Java

Mis on Swing in Java?

Pöörake sisse Java on graafilise kasutajaliidese (GUI) tööriistakomplekt, mis sisaldab GUI komponente. Swing pakub rikkalikku komplekti vidinaid ja pakette keerukate GUI komponentide valmistamiseks Java rakendusi. Swing on osa Java Foundation Classes (JFC), mis on API jaoks Java GUI programmeerimine, mis pakub GUI-d.

. Java Swing raamatukogu on ehitatud peal Java Abstract Widget Toolkit (AWT), vanem, platvormist sõltuv GUI tööriistakomplekt. Võite kasutada Java lihtsad GUI programmeerimiskomponendid, nagu nupp, tekstikast jne, raamatukogust ja ei pea neid komponente nullist looma.

Selle Java Kiikumise õpetus, õpid Java GUI põhitõed nagu -

Java Kiigeklassi hierarhiaskeem

Java Swing klassi hierarhia diagramm
Java Swing klassi hierarhia diagramm

Kõik komponendid sees Java Swing on JComponent, mida saab lisada konteineriklassidesse.

Mis on konteinerklass?

Konteinerite klassid on klassid, millel võib olla muid komponente. Nii et luua a Java Swing GUI, vajame vähemalt ühte konteinerobjekti. Seal on 3 tüüpi Java Kiigekonteinerid.

  1. Paneel: See on puhas konteiner ega ole aken omaette. Paneeli ainus eesmärk on korraldada komponendid aknale.
  2. Raam: see on täielikult töötav aken oma pealkirja ja ikoonidega.
  3. dialoog: Seda võib pidada hüpikaknaks, mis hüppab välja, kui sõnum tuleb kuvada. See ei ole täielikult töötav aken nagu raam.

Milles on GUI Java?

GUI (graafiline kasutajaliides) sisse Java on hõlpsasti kasutatav visuaalse kogemuse koostaja Java rakendusi. See koosneb peamiselt graafilistest komponentidest, nagu nupud, sildid, aknad jne, mille kaudu kasutaja saab rakendusega suhelda. GUI mängib olulist rolli lihtsate liideste loomisel Java rakendusi.

Kuidas luua GUI-d Java koos Näitega

Nüüd selles Java GUI õpetus, mõistame, kuidas GUI-d luua Java koos Swings sees Java näited.

Step 1) Kopeerige kood redaktorisse
Esimeses etapis kopeerige järgmine kood redaktorisse.

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 frame
       frame.setVisible(true);
    }
}

Step 2) Käivitage kood
Järgmine samm salvestage, kompileerige ja käivitage kood

Step 3) Kopeerige järgmine kood redaktorisse
Nüüd lisame oma raamile nupu. Kopeerige antud kood redaktorisse Java UI näide

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

Step 4) Käivitage kood
Järgmisena käivitage kood. Saate suure nupu.


Java GUI näide

Step 5) Lisage kaks nuppu

Kuidas oleks kahe nupu lisamisega? Kopeerige järgmine kood redaktorisse.

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

Step 6) Salvesta ja käivita programm
Järgmisena salvestage, kompileerige ja käivitage programm.

Step 7) Kontrollige väljundit
Ootamatu väljund =? Nupud hakkavad kattuma.

Java Layout Manager

Paigutuse haldurit kasutatakse graafilise kasutajaliidese paigutuseks (või korrastamiseks). Java konteineri sees olevad komponendid. Paigutuse haldureid on palju, kuid kõige sagedamini kasutatavad on

Java BorderLayout

A BorderLayout paigutab komponendid kuni viide piirkonda: ülemine, alumine, vasak, parem ja keskel. See on iga Java JFrame'i vaikepaigutuse haldur

Java BorderLayout

Java BorderLayout

Java FlowLayout

FlowLayout on kõigi jaoks vaikimisi paigutushaldur JPanel. See lihtsalt paigutab komponendid üksteise järel ühte ritta.

Java FlowLayout

Java FlowLayout

Java GridBagLayout

See on kõigist paigutustest keerukam. See joondab komponendid, asetades need lahtrite võrgustikku, võimaldades komponentidel katta rohkem kui ühte lahtrit.

Java GridBagLayout

Java GridBagLayout

Step 8) Loo vestlusraam
Kuidas luua vestlusraami nagu allpool?


Näide Java GUI

Enne alloleva programmi vaatamist proovige end kodeerida.

//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 Frame
        JFrame frame = new JFrame("Chat Frame");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 400);

        //Creating the MenuBar and adding components
        JMenuBar 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 components
        JPanel panel = new JPanel(); // the panel is not visible in output
        JLabel label = new JLabel("Enter Text");
        JTextField tf = new JTextField(10); // accepts upto 10 characters
        JButton send = new JButton("Send");
        JButton reset = new JButton("Reset");
        panel.add(label); // Components Added using Flow Layout
        panel.add(tf);
        panel.add(send);
        panel.add(reset);

        // Text Area at the Center
        JTextArea 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);
    }
}