Java Swing-opetusohjelma: GUI-sovelluksen luominen Java

Mikä on Swing in Java?

Käänny sisään Java on graafisen käyttöliittymän (GUI) työkalupakki, joka sisältää GUI-komponentit. Swing tarjoaa runsaan joukon widgetejä ja paketteja, joiden avulla voidaan tehdä kehittyneitä GUI-komponentteja Java sovelluksia. Swing on osa Java Foundation Classes (JFC), joka on API Java GUI-ohjelmointi, joka tarjoaa graafisen käyttöliittymän.

- Java Swing kirjasto on rakennettu päälle Java Abstract Widget Toolkit (A.W.T.), vanhempi, alustasta riippuvainen GUI-työkalupakki. Voit käyttää Java yksinkertaiset GUI-ohjelmointikomponentit, kuten painike, tekstilaatikko jne., kirjastosta, eikä sinun tarvitse luoda komponentteja tyhjästä.

Tässä Java Swing opetusohjelma, opit Java graafisen käyttöliittymän perusteet, kuten

Java Swing-luokan hierarkiakaavio

Java Swing-luokkahierarkiakaavio
Java Swing-luokkahierarkiakaavio

Kaikki komponentit mukana Java Swing ovat JComponent, jotka voidaan lisätä konttiluokkiin.

Mikä on konttiluokka?

Kontiluokat ovat luokkia, joissa voi olla muita komponentteja. Joten luomiseen a Java Swing GUI, tarvitsemme vähintään yhden konttiobjektin. Niitä on 3 tyyppiä Java Swing kontit.

  1. Paneeli: Se on puhdas kontti, eikä se ole ikkuna sinänsä. Paneelin ainoa tarkoitus on järjestää komponentit ikkunaan.
  2. kehys: Se on täysin toimiva ikkuna otsikoineen ja kuvakkeineen.
  3. Yhteydenpito: Sitä voidaan pitää ponnahdusikkunana, joka ponnahtaa ulos, kun viesti on näytettävä. Se ei ole täysin toimiva ikkuna, kuten Frame.

Mitä GUI sisältää Java?

GUI (Graphical User Interface) sisään Java on helppokäyttöinen visuaalisen kokemuksen rakentaja Java sovelluksia. Se koostuu pääasiassa graafisista komponenteista, kuten painikkeista, tarroista, ikkunoista jne., joiden kautta käyttäjä voi olla vuorovaikutuksessa sovelluksen kanssa. GUI:lla on tärkeä rooli helppojen käyttöliittymien rakentamisessa Java sovelluksissa.

Kuinka tehdä GUI sisään Java esimerkin kanssa

Nyt tässä Java GUI-opastus, ymmärrämme kuinka luodaan graafinen käyttöliittymä Java jossa Swings sisään Java esimerkkejä.

Vaihe 1) Kopioi koodi editoriin
Ensimmäisessä vaiheessa kopioi seuraava koodi editoriin.

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

Vaihe 2) Suorita koodi
Seuraava vaihe, tallenna, käännä ja suorita koodi

Vaihe 3) Kopioi seuraava koodi editoriin
Lisätään nyt painike kehykseemme. Kopioi seuraava koodi annetusta editoriin Java Esimerkki käyttöliittymästä

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

Vaihe 4) Suorita koodi
Suorita seuraavaksi koodi. Saat ison napin.


Java GUI-esimerkki

Vaihe 5) Lisää kaksi painiketta

Mitä jos lisäisit kaksi painiketta? Kopioi seuraava koodi editoriin.

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

Vaihe 6) Tallenna ja suorita ohjelma
Seuraavaksi Tallenna, käännä ja suorita ohjelma.

Vaihe 7) Tarkista lähtö
Odottamaton tulos =? Painikkeet menevät päällekkäin.

Java Layout Manager

Layout manageria käytetään graafisen käyttöliittymän asettelemiseen (tai järjestämiseen). Java komponentteja säiliön sisällä. Asetteluohjaimia on monia, mutta yleisimmin käytetyt ovat

Java BorderLayout

A BorderLayout sijoittaa komponentit jopa viidelle alueelle: ylhäältä, alas, vasemmalle, oikealle ja keskelle. Se on oletusasettelunhallinta jokaiselle Java JFramelle

Java BorderLayout

Java BorderLayout

Java FlowLayout

FlowLayout on oletusasettelunhallinta jokaiselle JPanel. Se yksinkertaisesti asettaa komponentit yhteen riviin peräkkäin.

Java FlowLayout

Java FlowLayout

Java GridBagLayout

Se on kaikista asetteluista hienostuneempi. Se kohdistaa komponentit sijoittamalla ne soluruudukon sisään, jolloin komponentit voivat ulottua useammalle kuin yhdelle solulle.

Java GridBagLayout

Java GridBagLayout

Vaihe 8) Luo keskustelukehys
Mitä jos luoisit chat-kehyksen, kuten alla?


Esimerkki Java GUI

Yritä koodata itsesi, ennen kuin katsot alla olevaa ohjelmaa.

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