Hoe om `n Swing koppelvlak met Java te skep
Eerstens sal jy die basiese konsepte van Java-voorwerpe en -vlakke benodig. Ons sal aanneem dat jy hulle reeds ken.
Hierdie artikel verduidelik hoe om `n eenvoudige program met sy bronkode te skep.
Om knoppies, teksvelde en ander komponente in die programvenster in te voeg, moet jy weet JPanel. Dit is `n tipe komponenthouer wat die bruikbare deel van die venster beklee en die komponente op `n eenvoudige manier wys. Hoe die verskillende komponente georganiseer word, hang af van die "uitleg" waar u elke komponent geplaas het. Vir handleiding moet u sekerlik ten minste oor "BorderLayout"Wat plaas vier komponente aan die kante en `n groot komponent in die middel. Jy sal ook moet weet oor "FlowLayout", Wat sal hulle saam in `n horisontale ry wys. En uiteindelik met GridLayout U kan die komponente arbitrêr in `n tabel n * m rangskik. Daar is meer soorte uitleg, maar vir beginners is dit te kompleks. Die sleutel idee is dat `n komponent nie net `n knoppie of `n boks kan wees nie, dit kan ook `n ander "JPanel" wees. U kan `n komplekse gebruikerskoppelvlak skep, net die panele een na die ander plaas en die tipe uitleg kies.
Sodra u die "JPanel" -voorbeeld het, skakel die ".setLayout" -metode en voeg ".add" by om komponente daarby te voeg. Vir die "BorderLayout" moet u die posisie as die tweede parameter gee. Byvoorbeeld, die oproep "myPanel.add (myBotton, BorderLayout.North)" sal die knoppie op die boonste rand plaas.
Die boonste houer, wat in die venster verskyn wat die Java-program verteenwoordig, is nie `n JPanel nie, maar `JFrame`. `N Voorbeeld van die oproep om die hoofpaneel voeg tot die geval van "JFrame" sou "miJFrame.getContentPane (). Voeg (miJPanel, BorderLayout.Center)".
Sodat jou aansoek nie net gesien kan word nie, maar met die gebruiker kan kommunikeer, moet jy die "ActionListener" koppelvlak gebruik. Elke nie-abstrakte koppelvlak tipe "ActionListener" het `n unieke metode "actionPerformed" wat outomaties genoem wanneer die gebruiker `n aksie met die komponent in wat sit die detector voer (die aksie met sal wees knoppie natuurlik druk dit ). Om `n detektor van aksies vir `n knoppie of `n ander komponent in te voeg, bel die metode ".addActionListener.".
stappe
Metode 1
Maak die hoofvensterMetode 2
Programmeringsreaksies vir gebruikersaksieswenke
- Dit is nie moeiliker om die "MouseListener" koppelvlak te implementeer nie en gebruik ".addMouseListener" om aktiwiteit op enige komponent te registreer.
- As jy jou eie grafiese voorwerpe wil ontwerp (soos `n skaakbord), leer oor doek. Dit kan in u aansoek soos enige ander komponent gevind word, maar u moet die ".paint" -metode skryf wat verantwoordelik sal wees om dit volledig op die skerm te teken.
- As u die gebruiker nodig het om `n tou in te voer, gebruik die statiese metode "JOptionPane.showInputDialog (hierdie," My boodskap ")". Die eerste parameter moet die venster van u aansoek of `n ander paneel wees (die teksveld sal in die middel van die wortelelement verskyn). Die metode sal die waarde wat die gebruiker in die teksveld ingevoer het, teruggee.
- In baie praktykprogramme sal die bruikbare komponent "JTable". Sodra jy die basiese beginsels bemeester het, gebruik dit direk.
- Dit is moontlik om al die komponente in `n enkele paneel te plaas deur "GridBagLayout" te gebruik, maar hierdie klas is moeiliker om te gebruik.
waarskuwings
- Sommige ontwikkelingsomgewings bied die geleentheid om die Swing gebruikerskoppelvlak op `n aantreklike manier vir die gebruiker op te stel. Hulle kan egter nie gewoonlik `n paneel met gevorderde funksies korrek maak nie. Hierdie funksies kan wees bome, tabelle, lyste, komponente met persoonlike data modelle en "combo boxes" wat die inhoud verander terwyl die program loop. As jy later die bronkode handmatig moet skryf om die gevorderde funksies te voltooi, kan dit pyn wees om te weet hoe om jouself daarin te spoor. Daarom moet u nie te veel van enige omgewing misbruik om gebruikerskoppelvlakke te ontwerp nie, aangesien dit u programmeringsvermoëns later sal beperk.
- Swing is `n een-draad program. As jou aansoek baie rekenkrag benodig, sal jou program vries totdat die "actionPerformed" -metode enige waarde oplewer. Leer en gebruik Java met verskeie drade om die Swing bruikbaar te hou terwyl die hoë vragproses loop.
- Die meeste metodes van Swing-komponente kan slegs veilig genoem word vanaf die draad wat dit noem, dit wil sê die een wat ".actionPerformed" en ander soortgelyke metodes aandui.
As jy nodig het om hulle te bel vanaf `n ander draad, leer oor "SwingUtils.invokeLater" (bv `n progress bar of show resultate van `n voortdurende proses werk).
Bronkode
invoer java.awt.BorderLayout-invoer java.awt.FlowLayout-invoer java.awt.event.ActionEvent-invoer java.awt.event.ActionListener-invoer javax.swing.JButton-invoer javax.swing.JCheckBox-invoer javax.swing .JFrame-invoer javax.swing.JPanel-invoer javax.swing.JTextArea -. / *** eenvoudige Java swing Aansoek * Bevat `n knoppie en `n boks *. * Reageer op interaksie met hierdie voorwerpe om hulle * teks in die teks area verander ** / openbare klas wikiHow JFrameimplements strek ActionListener {/ *** * Button / JButton myButton = nuwe JButton ( "Button") - .. / * ** Die boks * / JCheckBox miCheckBox = nuwe JCheckBox ( "check") - .. / *** Die teks area * / = nuwe JTextArea JTextArea miAreaDeTexto ( "My teks") - / *** Die paneel bevat die knoppie * / JPanel panelInferior = nuwe JPanel () -. / *** die paneel bevat alles * / JPanel panelTodo = nuwe JPanel () - .. / *** die konstruktor * / openbare wikiHow () {panelInferior .setLayout (nuwe FlowLayout ()) - panelInferior.add (miCheckBox) -panelInferior.add (myButton) -panelTodo.setLayout (nuwe BorderLayout ()) - panelTodo.add (panelInferior, BorderLayout.SOUTH) -panelTodo.add (miAreaDeTexto, BorderLayout.CENTER) -getContentPane () byvoeg (panelTodo, BorderLayout.CENTER) -miBoton.addActionListener (hierdie) -miCheckBox.addActionListener (hierdie) -setDefaultCloseOperation (DISPOSE_ON_CLOSE) -.} / * param *** die program args program nie uti . Dit bevat `n lys argumente, maar het * / openbare statiese nietig hoof (String [] argumente) {wikiHow wikiHow myApplication = nuwe () - // Spesifiseer watter in die venster verskyn: myApplication.setLocation (10, 10) -myApplication.setSize ( 300, 300) - // Wys dit myApplication.setVisible (ware) -} / *** Elke nie-abstrakte metode wat implemente die ActionListener moet hierdie metode * ** param aksie en gebeurtenis * / public void actionPerformed het .. (ActionEvent e) {if (e.getSource () == myButton) miAreaDeTexto.setText ( "A knoppie klik") - anders as (e.getSource () == miCheckBox) miAreaDeTexto.setText ( "Die boks toestand het verander na" + miCheckBox.isSelected ()) - elsemiAreaDeTexto.setText ( "E ...") -}}
- Hoe om `n gedrukte stroombaan saam te stel met oppervlak-bergingstegnologie
- Hoe om `n potensiometer te gebruik
- Hoe om `n Java-venster in Swing te sluit
- Hoe om kabels en komponente aan te sluit op `n platskerm-TV
- Hoe om Bluetooth te konfigureer
- Hoe om jou eerste Java-program in Ubuntu Linux te skep
- Hoe om `n Java-applet te skep
- Hoe om `n Java-program te skryf met twee klasse met behulp van Eclipse
- Hoe om `n komponent in SketchUp te maak
- Hoe om `n grafiese koppelvlak van rooster in Java te maak
- Hoe om Android op Ubuntu Linux te installeer met Eclipse IDE
- Hoe om Java op Ubuntu te installeer
- Hoe om `n waarskuwingsdialoog in Android te vertoon
- Hoe om die lengte van `n tou in Java te kry
- Hoe om die impedansie te bereken
- Hoe om `n vektor in sy komponente te ontbind
- Hoe om die grootte van `n vektor te vind
- Hoe om loodregte vektore in twee dimensies te vind
- Hoe om weerstand te meet
- Hoe om vektore by te voeg of af te trek
- Hoe om soldeer te verwyder