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 hoofdvensterMethode 2
Reacties programmeren op gebruikersactiestips
- 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 ...") -}}
- Hoe een gedrukte schakeling te assembleren met technologie voor oppervlaktemontage
- Hoe een computer te bouwen met tastbare akoestische interfaces
- Hoe een Java-venster in Swing te sluiten
- Kabels en componenten aansluiten op een flatscreen-tv
- Hoe u uw eerste Java-programma maakt in Ubuntu Linux
- Hoe een Java-applet te maken
- Hoe zich te ontdoen van Java-updatemeldingen
- Hoe de som van twee getallen in Java te vinden
- Hoe een Java-programma te schrijven met twee klassen met behulp van Eclipse
- Een component maken in SketchUp
- Hoe maak je een grafische interface van raster in Java
- Hoe Android te installeren op Ubuntu Linux met Eclipse IDE
- Hoe Java te installeren op Windows 8
- Hoe Java op Ubuntu te installeren
- Hoe de Java Software Development Kit te installeren
- Hoe de lengte van een tekenreeks in Java te krijgen
- Hoe een vector in zijn componenten te ontleden
- Hoe de grootte van een vector te vinden
- Hoe vectoren toe te voegen of af te trekken
- Hoe te controleren of jаvascript werkt met behulp van Java Tester
- Hoe Java-geheugen te vergroten in Windows 7