gushelom.ru

Så här skapar du en GUI med Swing i Java

I den här artikeln kommer du att lära dig hur du skapar en applikation som liknar den som visas i figuren. Dessutom kommer du att få källkoden.

För att infoga knappar, etiketter och andra komponenter i programfönstret måste du först studera dig själv JPanel. JPanel är ett slags behållare av komponenter, vilket tar upp utrymme i fönstret och organiserar visuellt de komponenter du har bestämt att använda. Hur exakt dessa komponenter är ordnade beror på den layout du tilldelade panelen. För att programmera manuellt måste du studera minst Border, som positionerar fyra komponenter på sidorna och en komponent i mitten, då måste du studera FlowLayout, som istället ordnar komponenterna i horisontella rader och slutligen Gridlayout, vilken placerar komponenterna i en godtycklig tabell n *. Det finns också andra, men de kan vara för komplexa för nybörjaren, och kommer därför inte att listas. Det grundläggande begreppet som du måste förstå är att a "komponent" Det kan inte bara vara en knapp eller en kryssruta, men också en annan "JPanel". Så genom att placera paneler inuti varandra och välja en layout för var och en av dem kan du skapa ett mycket komplext användargränssnitt. Efter att ha skapat en instans av "JPanel", använd metoden ".setLayout" för att ställa in layouten och sedan använda ".add" att lägga till komponenter. För "Border", måste du också ställa in koordinater som en andra parameter. Till exempel, ring "myPanel.add (myButton, BorderLayout.North)" att placera en knapp i övre hörnet. Behållaren "översta nivån", som visas på skärmen som representerar Java-programmet, är inte en "JPanel" men a "JFrame". samtal "myJFrame.getContentPanel (). add (myJPanel, BorderLayout.Center)" för att lägga till panelen "huvud" all`instanza "JFrame". För att se till att din ansökan, förutom att visas på skärmen, gör ännu mer måste du studera gränssnittet "Action". någon "Action" inte abstrakt har sin metod, "actionPerformed", som kallas automatiskt när användaren gör en"åtgärd" i den komponent på vilken "lyssnaren" (åtgärden, vad gäller knapparna är till exempel tryck på knappen). För att registrera en lyssnare för en knapp eller annan komponent, använd metoden .addActionListener..

Metod 1

Skapa huvudramen
Bildnamn Skapa ett Swing GUI i Java Steg 1
1
Skapa en klass som utökar klassen "JFrame". Den här klassen innehåller alla komponenter i GUI, t.ex. knappar och textrutor.
  • Bildnamn Skapa ett Swing GUI i Java Steg 2
    2
    Rita layouten på din första applikation. En bra start kan vara en central panel med "Border" med en annan panel längst ner ("BorderLayout.South"). Den här andra panelen kan använda "FlowLayout" och innehåller flera knappar, kryssrutor och liknande kontroller. Slutligen placera en stor "JTextArea" mitt i den centrala komponenten. Du kommer att kunna använda funktionerna "gettext ()" och "setText ()" för att skapa textinteraktioner med användaren.
  • Bildnamn Skapa ett Swing GUI i Java Steg 3
    3
    Skriv konstruktören för klassen. Den här byggaren har till uppgift att skapa alla paneler och komponenter som du vill skapa, placera dem rätt i den andra och sedan lägga till den sista panelen som förenar hela ramen: (myFrame.getContentPane (). lägg till (myLargePanel, BorderLayout.Center)."
  • Bildnamn Skapa ett Swing GUI i Java Steg 4
    4
    Skriv huvudfunktionerna, som kommer att vara startpunkten för programmet. På så sätt skapar det en instans av ramen, sätter position och initiala dimensioner (med."setSize (x, y)") e .setLocation (bredd, höjd) `) och se till att de visas på skärmen med .setVisible (sant).
  • Metod 2

    Program svar på en åtgärd av användaren
    Bildnamn Skapa ett Swing GUI i Java steg 5
    1
    Implementera gränssnittet "Action" i ramen. På så sätt kommer din klass att lyssna på användarinteraktioner med komponenterna.
  • Bildnamn Skapa ett Swing GUI i Java steg 6
    2
    För varje knapp, kryssruta eller annan check som du har skapat, använd den här funktionen."addActionListener", passerar namnet på din ram som parameter ("detta").
  • Bildnamn Skapa ett Swing GUI i Java steg 7
    3
    Genomgå ActionListeners abstrakta funktion "actionPerformed (ActionEvent-händelse)". Genom att göra så måste du infoga instruktioner "om" för att kontrollera åtgärdens ursprung. utbildning "om" Det borde innehålla ett sådant villkor ""om (event.getSource () == button1")". I detta uttalande kontrolleras händelsens ursprung och vilken tid händelsen härstammar från din knapp. Inom utbildningen "om", skriv den åtgärd du vill slutföra när knappen trycks in.
  • Bildnamn Skapa ett Swing GUI i Java steg 8
    4
    JTextArea har en funktion .setText ("myText"). Detta är ett bra sätt att infoga visuella textsvar på åtgärden.
  • tips

    • Om du vill lära dig att rita dina egna grafiska objekt (som ett schackbräde), studera komponenten målarduk. Den senare kan placeras i din ansökan precis som någon annan, men du måste använda funktionen .paint, som är ansvarig för att dra komponenten på skärmen.
    • En användbar Swing-komponent i många praktiska tillämpningar är JTable. Efter att ha läst grunderna, studera det direkt.
    • Implementera och använd gränssnittet "MoustListener" det är inte mycket svårare än det som hittills har förklarats. Sätt."addMouseListener" att registrera det på varje komponent.
    • Om du vill att ditt program ska be om en inmatad textsträng, använd den statiska J-funktionenOptionPane.showInputDialog (detta, "meddelande"). Den första parametern ska vara ramen för själva appen eller en panel (inmatningsrutan kommer att visas mitt på huvudpanelen). Den här funktionen returnerar det värde som användaren anger i dialogrutan.
    • Du kan sätta alla komponenter i en enda panel med hjälp av "GridBagLayout", men den här klassen är svårare att lära sig.

    varningar

    • Vissa utvecklingsmiljöer gör att du kan komponera Swing GUI-metoder "användarvänlig". Men de här programmen tillåter inte att du korrekt skapar en panel med komplexa funktioner. Bland dessa funktioner ingår träd, tabeller, listor, kombinationsrutor som ändrar innehållet medan programmet körs och även komponenter med egna datamodeller och så vidare. Koden, ursprungligen sammansatt på ett sätt "användarvänlig", det kan bli en riktig mardröm när du senare behöver ändra den och / eller slutföra den manuellt. Så, bli inte för van vid dessa GUI designprogram, annars kommer du allvarligt att begränsa dina chanser för programmeraren.
    • Swing är en enda tråd applikation. Om hanteringen av åtgärderna kräver för mycket beräknatid kommer det att sluta tills du returnerar metoden ".actionPerformed". Lär dig att använda Java i multithreading för att hålla dig vid liv "gunga" och använda resursintensiva processer samtidigt.
    • De flesta metoderna för Swing-komponenter kan kallas säkert av Event Dispatching Thread (vad det kallar ".actionPerformed" och andra liknande metoder). Om du behöver ringa dessa metoder från en annan tråd (t.ex. för att uppdatera en statusfält eller visa resultatet av en lång process), studera metoden "SwingUtils.invokeLater".

    Källkod

    {{CODEBOX |

    import java.awt.BorderLayout-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 - / *** Java-program mycket enkelt * Innehåller knappar och kryssrutor. * * Reagerar på interaktionen med kontrollerna genom att ändra den text som visas i det viktigaste området. ** @autorer audriusa * / public class wikiHow sträcker JFrameimplements Action {/ *** Knappen. * / JButtonmyButton = new JButton ("knapp") - / *** Avkryssningsrutan. * / JCheckBoxmyCheckBox = ny JCheckBox ("check") - / *** Textområdet * / JTextAreamyText = nytt JTextArea ("Min text") - / *** Den undre panelen, som innehåller knappen * / JPanelbottomPanel = new JPanel () -. / *** Den övre panelen, som innehåller hela * / JPanelholdAll = new JPanel () -. / *** konstruktören * / public wikiHow () {bottomPanel.setLayout (ny FlowLayout ()) -. bottomPanel.add (myCheckBox) -bottomPanel.add (myButton) -holdAll.setLayout (ny Border ()) - holdAll.add (bottomPanel, . BorderLayout.SOUTH) -holdAll.add (myText, BorderLayout.CENTER) -getContentPane () sätt (holdall, BorderLayout.CENTER) -myButton.addActionListener (detta) -myCheckBox.addActionListener (detta) -setDefaultCloseOperation (DISPOSE_ON_CLOSE) -} / *** Programmet * @paramde definierar programmets startparametrar. . Inte används * / public static void main (String [] args) {wikiHow myApplication = new wikiHow () - // Ange vilka visas på schermo.myApplication.setLocation (10, 10) -myApplication.setSize (300, 300) - // Visa det myApplication.setVisible (true) -..} / *** Varje icke-abstrakt klass som implementerar Action * bör använda denna metod ** @parame åtgärden händelsen * / public void actionPerformed (ActionEvente) {if (e. getSource () == myButton) myText.setText ("En knapp klickar") -else om (e.getSource () == myCheckBox) myText.setText ("Statusen för kryssrutan har ändrats till + myCheckBox.isSelected ()) - elsemyText.setText ("Och ...?") -}}}}
    Dela på sociala nätverk:

    Relaterade
    Så här aktiverar du ytterligare komponenter (lägg till)Så här aktiverar du ytterligare komponenter (lägg till)
    Så här aktiverar du pluginsSå här aktiverar du plugins
    Så här uppdaterar du Firefox-tilläggSå här uppdaterar du Firefox-tillägg
    Så här lägger du till rader i Microsoft WordSå här lägger du till rader i Microsoft Word
    Så här ansluter du en plasma-tvSå här ansluter du en plasma-tv
    Så här ansluter du kablar och komponenter till en platt-tvSå här ansluter du kablar och komponenter till en platt-tv
    Så här kontrollerar du datatemperaturenSå här kontrollerar du datatemperaturen
    Så här kontrollerar du systeminformationSå här kontrollerar du systeminformation
    Hur man bygger en ekonomisk datorHur man bygger en ekonomisk dator
    Hur man skapar de bästa kombinationerna av vapen i Dead Space 3Hur man skapar de bästa kombinationerna av vapen i Dead Space 3
    » » Så här skapar du en GUI med Swing i Java

    © 2011—2021 gushelom.ru