Sådan oprettes et GUI-interface med swing i Java

For det første skal du forstå det grundlæggende i Java såvel som hvordan det håndterer objekter og grænseflader. Denne vejledning forudsætter, at du allerede har denne viden.

Artiklen forklarer, hvordan man opretter en simpel ansøgning som vist i nedenstående figur, samt udsætter din kildekode.

For at placere knapperne, tekstfelterne og andre komponenter i programvinduet skal du forstå JPanel. Det er en slags beholder til komponenter, der optager det rektangulære rum på skærmen og præsenterer komponenterne indsat på en simpel måde. Hvor præcis komponenterne er placeret, afhænger af hvilket layout du har valgt til dit dashboard. Ved manuel programmering er det tilrådeligt, at du ved i det mindste BorderLayout (Edge Layout), der indsætter fire komponenter på siderne og en stor komponent i midten, så den FlowLayout som normalt tjener til at organisere og placere dem side om side i vandrette linjer og endelig GridLayout som organiserer komponenterne i et bord af l * c. Der er flere layout muligheder, men resten er for komplekse for begyndere. Nøgleideen her er, at en "komponent" måske ikke kun er en knap eller afkrydsningsfelt - det kan endda være et andet JPanel-panel. Du kan opnå en kompleks grænseflade ved blot at indsætte paneler i hinanden og vælge de relevante layouter for dem.

Når du har en forekomst af JPanel, skal du ringe til setLayout-metoden for at konfigurere layoutet og derefter .add-metoden for at tilføje komponenterne til panelet. For BorderLayout skal du angive positionen som en anden parameter. Ring til min Panel.add (myBotao, BorderLayout.North) for at placere din knap på den øverste kant eller kant.

Beholderen på øverste niveau, som vises på skærmen, repræsenterer en java-applikation, er ikke et JPanel-panel, men en JFrame. Ring til myJFrame.getContentPane (). Tilføj (myJpanel, BorderLayout.Center) for at tilføje dit hovedpanel til JFrame-forekomsten.

For at gøre din ansøgning mere end bare "pop up" skal du også forstå ActionListener-grænsefladen. Hver ikke-abstrakt ActionListener har en metode, actionPerformed, som kaldes automatisk, når brugeren foretager en "handling" med komponenten, hvor lytteren er registreret (med knappen handling er selvfølgelig pessionando det). Hvis du vil registrere en handling for en knap eller en anden komponent, skal du ringe til .addActionListener.

trin

Metode 1
Gør rammen eller den generelle ramme

Billede titel Opret en Swing GUI i Java Trin 1
1
Opret en klasse, der udvider klassen JFrame.class. Denne klasse vil holde alle sine grafiske brugergrænseflade (GUI) komponenter, såsom knapper og tekstfelter.
  • Billede med titlen Opret en Swing GUI i Java Trin 2

    Video: Words at War: Der Fuehrer / A Bell For Adano / Wild River

    2
    Planlæg det overordnede layout af din første applikation. En god start kan være et centralt panel med BorderLayout og et andet panel i nederste hjørne (BorderLayout.South). Dette andet panel kan indeholde FlowLayout med nogle knapper, afkrydsningsfelter og andre lignende kontroller. Endelig placerer du det store JTextArea i midten af ​​midterdelen. Du vil kunne bruge metoderne getText () og setText () til at gøre noget tekstinteraktion med brugeren.
  • Billede med titlen Opret en Swing GUI i Java Trin 3
    3
    Skriv en konstruktør til din klasse. Denne konstruktør bør skabe alle paneler og komponenter, som du planlægger og placere dem korrekt og tilsæt den endelige panel, som "holder alting" til din ramme (meuFrame.getContentPanel (). Tilføj (meuLargePanel, BorderLayout.Center ).
  • Video: Suspense: Murder Aboard the Alphabet / Double Ugly / Argyle Album

    Billede med titlen Opret en Swing GUI i Java Trin 4
    4
    Skriv hovedmetoden, som vil være startpunktet for programmet. I denne metode skaber en instans af din ramme, skal du indstille den indledende størrelse og placering (brug .setSize (x, y) da setLocation (bredde, højde)), og gøre det vises på skærmen kalde det med setVisible (sand).
  • Metode 2
    Planlægning af svar på brugerhandlinger

    Billede titel Opret en Swing GUI i Java Trin 5


    1
    Gør din ramme implementere ActionListener-grænsefladen. Dette vil gøre det muligt for din klasse at lytte til handlingerne i komponenterne.
  • Billede med titlen Opret en Swing GUI i Java Trin 6
    2
    For hver knap, afkrydsningsfelt eller anden kontrol, du muligvis har oprettet, skal du påberåbe din .addActionListener-metode og overføre rammen som parameter.
  • Billede med titlen Opret en Swing GUI i Java Trin 7
    3
    Overstyr den abstrakte ActionListener-metode, actionPerformed (ActionEvent-begivenhed). I denne metode skal du lægge en hvis checker for at vide, hvor handlingshændelsen gik. Dette hvis verifikatoren skal have en betingelse, der rapporterer noget som "if (event.getSource () == button1)". Dette kontrollerer, hvor begivenheden kommer fra, og om det kommer fra din knap. Inde i If-verifikatoren, gør hvad der skal gøres, når du trykker på knappen.
  • Billede med titlen Opret en Swing GUI i Java Trin 8
    4
    JTextArea har en .setText ("My Text") metode, der ser interessant ud af, hvordan du kan programmere noget synligt svar på din handling.
  • tips

    • Det er ikke meget sværere at implementere MouseListener-grænsefladen og bruge .addMouseListener til at registrere det for enhver komponent.
    • Hvis du vil tegne dine egne grafiske objekter (som et skakbræt), skal du læse om komponenten lærred. Den kan placeres i din ansøgning ligesom enhver anden komponent, men du skal skrive .paint-metoden, der er ansvarlig for tegningen af ​​dit objekt.
    • Hvis du skal bede brugeren om at overføre en streng som input, skal du ringe til den statiske metode JOptionPane.showInputDialog (dette, "Min meddelelse"). Den første parameter skal være din ansøgningsramme eller noget panel (indsætningsboksen vises i midten af ​​hovedvinduet). Metoden returnerer den værdi, som brugeren indtastede i dialogboksen.
    • I mange praktiske anvendelser er den mest brugte Swing komponent den JTable. Når du allerede mestrer det grundlæggende, skal du prøve at studere det og bruge det.
    • Det er muligt at indsætte alle komponenterne i et enkelt panel ved hjælp af GridBagLayout, men denne klasse er mere kompleks at forstå og bruge.

    advarsler

    • Nogle udviklingsmiljøer giver mulighed for at designe og samle Swing GUI på en "venlig" måde. Men de kan ikke gennemføre det avancerede funktioner panel korrekt. Sådanne funktioner omfatter træer, tabeller, lister og kombinationsbokse, der ændrer deres indhold, mens programmet kører, samt komponenter med brugerdefinerede datamodeller, blandt andre. Kode, når det gøres gennem en "venlig" mekanisme, kan blive et ægte mareridt, hvis du skal færdiggøre det manuelt senere. Derfor er tipet, at du ikke holder dig til GUI-venlige applikationer til udvikling af grafiske GUI`er, da de kan begrænse dine udviklingsmuligheder til begrænsede ressourcer.
    • Swing er en enkelt-gevind applikation. Hvis din handling kræver for meget behandlingstid, vil den "fryse", indtil din .actionPerformed metode giver et afkast. Lær og brug Java`s multithreadingsfunktioner for at gøre din Swing mere "live", mens behandlingstidspunktet kører.
    • De fleste metoder til Swing-komponenter kan kun kaldes sikkert fra den begivenhed, der udløser tråden (som kalder de .actionPerformed og andre lignende lyttermetoder). Hvis du skal ringe fra en anden tråd (for eksempel for at opdatere en statuslinje eller vise resultater fra en langvarig proces), læs om SwingUtils.invokeLater.

    Kildekode

    {{CodeBox |

    java.awt.BorderLayout import-import java.awt.FlowLayout-import java.awt.event.ActionEvent-import java.awt.event.ActionListener-import javax.swing.JButton-import javax.swing.JCheckBox-import javax.swing .JFrame-import javax.swing.JPanel-import javax.swing.JTextArea - / *** En meget enkel java swing ansøgning * Indeholder knap og afkrydsningsfeltet .. * Reagerer på manipulationer med Disse kontroller * ved at ændre tekst i hovedteksten område. ** @author audriusa * / public class wikiHow udvider JFrame implementerer ActionListener {/ *** Knappen. * / JButton myButton = ny JButton ( "knap" ) - / *** den afkrydsningsfeltet * / JCheckBox MyCheckBox = ny JCheckBox ( "Check") -. / *** teksten område * / JTextArea myText = ny JTextArea ( "Mit tekst") -. / *** den hvilke nederste panel holder knap * / JPanel bottomPanel = nye JPanel () - .. / *** Det øverste niveau panel, som besidder alle * / JPanel rejsetaske = nye JPanel () -. / *** konstruktøren * / public wikiHow ( ) bottomPanel.setLayout {(ny FlowLayout ()) - bottomPanel.add (MyCheckBox) -bottomPanel.add (myButton) -holdAll.setLayout (ny BorderLayout ()) - holdAll.add (bottomPanel, BorderLayout.SOUTH) -holdAll.add (myText, BorderLayout.CENTER) -getContentPane () tilføje (rejsetaske, BorderLayout.CENTER) -myButton.addActionListener (dette) -myCheckBox.addActionListener (dette) -setDefaultCloseOperation (DISPOSE_ON_CLOSE) -.} / *** programmet * @param args programmet opstart parametre, n T bruges * / public static void main (String [] args) {wikiHow wikiHow myApplication = ny () - // Angiv, hvor det vil blive vist på skærmen :. myApplication.setLocation (10, 10) -myApplication.setSize (300, 300) - // Vis det myApplication.setVisible (sand) -} / *** Hver ikke que abstrakt klasse implementerer ActionListener * skal have denne metode ** @param og handlingen begivenhed * / public void actionPerformed (ActionEvent .. e) {if (e.getSource () == myButton) myText.setText ( "knappen klik") - ellers hvis (e.getSource () == MyCheckBox) myText.setText ( "The afkrydsningsfeltet tilstand ændret til" + MyCheckBox .isSelected ()) - elsemyText.setText () "Og ...?" -}}}}
    Del på sociale netværk:

    Relaterede
    © 2024 HodTari.com