emkiset.ru

Hoe een Swing-interface met Java te maken

Ten eerste hebt u de basisbegrippen van Java-objecten en interfaces nodig. We gaan ervan uit dat je ze al kent.

In dit artikel wordt uitgelegd hoe u een eenvoudig programma kunt maken met de broncode.

Als u knoppen, tekstvelden en andere componenten in het programmavenster wilt invoegen, moet u dit weten JPanel. Het is een type componentcontainer, die het bruikbare deel van het venster inneemt en de componenten op een eenvoudige manier toont. Hoe de verschillende componenten zijn georganiseerd, hangt af van de "lay-out" waar u elk onderdeel hebt geplaatst. Voor handmatig programmeren moet je waarschijnlijk minstens weten over "BorderLayout"Die plaatst vier componenten aan de zijkanten en een groot component in het midden. Je moet ook weten over "FlowLayout", Die ze in een horizontale rij samen zullen weergeven. En eindelijk met GridLayout U kunt de componenten willekeurig rangschikken in een tabel n * m. Er zijn meer soorten "lay-out", maar voor beginners zijn ze te complex. Het belangrijkste idee is dat een component niet alleen een knop of een selectievakje kan zijn, maar ook een ander "JPanel". U kunt een complexe gebruikersinterface maken, waarbij alleen panelen in elkaar worden geplaatst en het type "opmaak" van elke eenheid wordt gekozen.

Zodra u de instantie "JPanel" hebt, roept u de methode ".setLayout" aan en voegt u ".add" toe om componenten eraan toe te voegen. Voor de "BorderLayout" moet u de positie als de tweede parameter opgeven. De aanroep "myPanel.add (myBotton, BorderLayout.North)" plaatst de knop bijvoorbeeld op de bovenrand.

De bovenste container, die in het venster dat het Java-toepassingsprogramma vertegenwoordigt verschijnt, is geen "JPanel" maar "JFrame". Een voorbeeld van een aanroep om het hoofdpaneel toe te voegen aan de instantie "JFrame" is "miJFrame.getContentPane (). Add (miJPanel, BorderLayout.Center)".

Zodat uw toepassing niet alleen kan worden gezien, maar ook kan communiceren met de gebruiker, moet u de interface "ActionListener" gebruiken. Elke niet-abstract type interface "ActionListener" een unieke methode "actionPerformed" die automatisch wordt opgeroepen wanneer de gebruiker een actie met het orgaan waar zet de detector voert (actie met zal uiteraard toets druk ). Als u een detector van acties voor een knop of een ander onderdeel wilt invoegen, belt u de methode ".addActionListener.".

stappen

Methode 1

Maak het hoofdvenster
Titel afbeelding Create a Swing GUI in Java Stap 1
1
Maak een klasse die de klasse "JFrame" uitbreidt. Deze klasse bevat alle componenten van de gebruikersinterface, zoals knoppen en tekstgebieden.
  • Titel afbeelding Create a Swing GUI in Java Step 2
    2
    Plan het algemene ontwerp van je eerste programma. Een goed begin kan zijn met een centraal paneel met "BorderLayout" met een ander paneel onderaan ("BorderLayout.South"). Het onderste paneel kan een "FlowLayout" zijn en meerdere knoppen, selectievakjes of andere soortgelijke componenten bevatten. Plaats ten slotte een groot "JTextArea" in het midden van de centrale "lay-out". U kunt communiceren met de gebruiker met de methoden "getText ()" en "setText ()".
  • Titel afbeelding Create a Swing GUI in Java Step 3
    3
    Schrijf je bouwklasse. Deze aannemer moeten alle panelen en onderdelen die u dacht te maken, de juiste plaats ze en zorgt voor de finishing panel dat ze allemaal bevat. "MiFrame.getContentPane () toe te voegen (miGranPanel, BorderLayout.Center)".
  • Titel afbeelding Create a Swing GUI in Java Step 4


    4
    Schrijf de "hoofd" -methode die het beginpunt van het programma zal zijn. Maak in deze methode een instantie van uw "frame", plaats de initiële grootte en positie (gebruik ".SetSize (x, y)" en ".setLocation (width, height)") en laat het op het scherm zien met behulp van ".setVisible (true)".
  • Methode 2

    Reacties programmeren op gebruikersacties
    Titel afbeelding Create a Swing GUI in Java Step 5
    1
    Laat uw venster de interface "ActionListener" implementeren. Hierdoor kan uw klasse interactiviteit in de componenten detecteren.



  • Titel afbeelding Create a Swing GUI in Java Step 6
    2
    Voor elke knop, checkbox of iets anders dat u hebt gemaakt, aangeroepen zijn ".addActionListener" methode, het passeren van het venster dat wordt gebruikt ( `dit`) als een parameter.
  • Titel afbeelding Create a Swing GUI in Java Step 7
    3
    Wijzig de abstracte methode van de "ActionListener" in actionPerformed (ActionEvent -gebeurtenis) ". In deze methode moet u conditionele "if" plaatsen om te controleren waar de gebeurtenissen vandaan komen. Deze conditionals moeten een conditie hebben die lijkt op "if (event.getSource () == button1)." Dit controleert waar de gebeurtenis vandaan komt en of deze afkomstig is van je knop. Voeg in het "als" toe wat het programma moet doen wanneer de knop wordt ingedrukt.
  • Titel afbeelding Create a Swing GUI in Java Step 8
    4
    JTextArea heeft een methode .setText ("mijn tekst"), wat een goede manier is voor het programma om een ​​reactie op uw actie te tonen.
  • tips

    • Het is niet moeilijker om de interface "MouseListener" te implementeren en ".addMouseListener" te gebruiken om activiteit op een component te registreren.
    • Als je je eigen grafische objecten (zoals een schaakbord) wilt ontwerpen, lees dan hier meer over canvas. Het kan net als elk ander onderdeel in uw toepassing worden gevonden, maar u moet de ".paint" -methode schrijven die verantwoordelijk is voor het volledig op het scherm tekenen.
    • Als u de gebruiker nodig hebt om een ​​tekenreeks in te voeren, gebruikt u de statische methode "JOptionPane.showInputDialog (this," My message ")". De eerste parameter moet het venster van uw toepassing of een ander paneel zijn (het tekstveld verschijnt in het midden van het wortelelement). De methode retourneert de waarde die de gebruiker in het tekstveld heeft ingevoerd.
    • In veel oefenprogramma`s zal het nuttigste onderdeel zijn "JTable". Zodra je de basiskennis onder de knie hebt, gebruik je deze direct.
    • Het is mogelijk om alle componenten in een enkel paneel te plaatsen met behulp van "GridBagLayout", maar deze klasse is moeilijker te gebruiken.

    waarschuwingen

    • Sommige ontwikkelomgevingen bieden de mogelijkheid om de Swing-gebruikersinterface op een aantrekkelijke manier voor de gebruiker samen te stellen. Ze zijn echter meestal niet in staat om correct een paneel met geavanceerde functies te maken. Deze functies kunnen bomen, tabellen, lijsten, componenten met aangepaste gegevensmodellen en "keuzelijsten met invoervak" zijn die de inhoud wijzigen terwijl het programma wordt uitgevoerd. Als u later de broncode handmatig moet schrijven om de geavanceerde functies te voltooien, kan het lastig zijn om te weten hoe u zich daarin kunt vinden. Daarom moet u niet te veel van de omgeving misbruiken om gebruikersinterfaces te ontwerpen, omdat dit later uw programmeermogelijkheden zal beperken.
    • Swing is een een thread programma. Als uw toepassing veel rekenkracht nodig heeft, bevriest uw programma totdat de "actionPerformed" -methode enige waarde retourneert. Leer en gebruik Java met verschillende threads om de Swing bruikbaar te houden terwijl het high load-proces wordt uitgevoerd.
    • De meeste methoden van Swing-componenten kunnen alleen veilig worden aangeroepen vanuit de thread die deze gebruikt, dat wil zeggen degene die ".actionPerformed" en andere vergelijkbare methoden aanroept.

    Als u nodig hebt om ze te bellen vanaf een andere thread, leren over "SwingUtils.invokeLater" (bijvoorbeeld om een ​​voortgangsbalk of tonen de resultaten van een continu proces bij te werken).

    Broncode

    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 -. / *** eenvoudige Java Swing Application * Bevat een knop en een selectievakje *. * Reageert op interactie met deze objecten om hun * tekst in het gebied te wijzigen ** / public class wikiHow JFrameimplements breidt ActionListener {/ *** * Button / JButton myButton = new JButton ( "Button") - .. / * ** Het selectievakje * / JCheckBox miCheckBox = new JCheckBox ( "check") - .. / *** De tekst gebied * / = new JTextArea JTextArea miAreaDeTexto ( "My tekst") - / *** Het panel bevat de knop * / JPanel panelInferior = new JPanel () -. / *** het paneel bevat alles * / JPanel panelTodo = new JPanel () - .. / *** de constructeur * / public wikiHow () {panelInferior .setLayout (nieuw FlowLayout ()) - panelInferior.add (miCheckBox) -panelInferior.add (myButton) -panelTodo.setLayout (nieuw BorderLayout ()) - panelTodo.add (panelInferior, BorderLayout.SOUTH) -panelTodo.add (miAreaDeTexto, BorderLayout.CENTER) -getContentPane () toe te voegen (panelTodo, BorderLayout.CENTER) -miBoton.addActionListener (this) -miCheckBox.addActionListener (this) -setDefaultCloseOperation (DISPOSE_ON_CLOSE) -.} / * @param *** het programma args programma niet uti . Het bevat argumenten, maar liet * / public static void main (String [] args) {WikiHow WikiHow MyApplication = new () - // Geeft die in het venster: myApplication.setLocation (10, 10) -myApplication.setSize ( 300, 300) - // Toon het myApplication.setVisible (true) -} / *** Elke niet-abstracte methode die implementeert de ActionListener moet deze methode * ** @ param actie en event * / public void actionPerformed hebben .. (ActionEvent e) {if (e.getSource () == myButton) miAreaDeTexto.setText ( "A knoop" klikt) - else if (e.getSource () == miCheckBox) miAreaDeTexto.setText ( "The checkbox staat veranderd in" + miCheckBox.isSelected ()) - elsemiAreaDeTexto.setText ( "E ...") -}}
    Delen op sociale netwerken:

    Verwant
    Hoe een computer te bouwen met tastbare akoestische interfacesHoe een computer te bouwen met tastbare akoestische interfaces
    Hoe een Java-venster in Swing te sluitenHoe een Java-venster in Swing te sluiten
    Kabels en componenten aansluiten op een flatscreen-tvKabels en componenten aansluiten op een flatscreen-tv
    Hoe u uw eerste Java-programma maakt in Ubuntu LinuxHoe u uw eerste Java-programma maakt in Ubuntu Linux
    Hoe een Java-applet te makenHoe een Java-applet te maken
    Hoe zich te ontdoen van Java-updatemeldingenHoe zich te ontdoen van Java-updatemeldingen
    Hoe de som van twee getallen in Java te vindenHoe de som van twee getallen in Java te vinden
    Hoe een Java-programma te schrijven met twee klassen met behulp van EclipseHoe een Java-programma te schrijven met twee klassen met behulp van Eclipse
    Een component maken in SketchUpEen component maken in SketchUp
    Hoe maak je een grafische interface van raster in JavaHoe maak je een grafische interface van raster in Java
    » » Hoe een Swing-interface met Java te maken
    © 2021 emkiset.ru