dmylogi.com

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 hoofvenster
Prent getiteld Skep `n Swing GUI in Java Stap 1
1
Skep `n klas wat die "JFrame" -klas uitbrei. Hierdie klas bevat al die komponente van die gebruikerskoppelvlak, soos knoppies en teksareas.
  • Prent getiteld Skep `n Swing GUI in Java Stap 2
    2
    Beplan die algemene ontwerp van u eerste program. `N Goeie begin kan wees met `n sentrale paneel met` BorderLayout `met `n ander paneel onderaan ("BorderLayout.South"). Die onderste paneel kan `n "FlowLayout" wees en bevat verskeie knoppies, bokse of ander soortgelyke komponente. Laastens, plaas `n groot "JTextArea" in die middel van die sentrale "uitleg". Jy kan met die gebruiker met die metodes "getText ()" en "setText ()" kommunikeer.
  • Prent getiteld Skep `n Swing GUI in Java Stap 3
    3
    Skryf jou konstruksieklas. Dit konstruktor moet alle panele en komponente wat jy gedink skep, behoorlik plaas dit en voeg `n finale paneel wat hulle al bevat. "MiFrame.getContentPane () byvoeg (miGranPanel, BorderLayout.Center)".
  • Prent getiteld Skep `n Swing GUI in Java Stap 4
    4
    Skryf die "hoof" metode wat die toegangspunt tot die program sal wees. In hierdie metode `n geval van jou "raam" skep, stel die aanvanklike grootte en posisie (met behulp van `.setSize (x, y) "en" .setLocation (breedte, hoogte) ") en het dit op die skerm met behulp van ". Instelbare (waar)".
  • Metode 2

    Programmeringsreaksies vir gebruikersaksies
    Prent getiteld Skep `n Swing GUI in Java Stap 5
    1
    Maak jou venster implementeer die "ActionListener" koppelvlak. Dit sal jou klas toelaat om interaktiwiteit op te spoor in die komponente.


  • Prent getiteld Skep `n Swing GUI in Java Stap 6
    2
    Vir elke knoppie, boks of ander ding wat jy geskep het, roep die ".addActionListener" -metode aan. Gebruik die venster wat gebruik word ("hierdie") as `n parameter.
  • Prent getiteld Skep `n Swing GUI in Java Stap 7
    3
    Verander die abstrakte metode van die "ActionListener" na ActionPerformed (ActionEvent-gebeurtenis) ". In hierdie metode moet u voorwaardelike "indien" stel om te kontroleer waar die gebeure vandaan kom. Hierdie voorwaardelike moet `n soortgelyke toestand het "as (event.getSource () == knop1)". Dit bewys waar die gebeurtenis kom en as dit kom uit jou knoppie. Binne die "as" voeg hy by dit wat jy het om die program te doen wanneer die knoppie gedruk word.
  • Prent getiteld Skep `n Swing GUI in Java Stap 8
    4
    JTextArea het `n metode .setText ("my teks") wat `n goeie manier is vir die program om `n reaksie op jou aksie te toon.
  • wenke

    • 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 ...") -}}
    Deel op sosiale netwerke:

    Verwante
    Hoe om `n potensiometer te gebruikHoe om `n potensiometer te gebruik
    Hoe om `n Java-venster in Swing te sluitHoe om `n Java-venster in Swing te sluit
    Hoe om kabels en komponente aan te sluit op `n platskerm-TVHoe om kabels en komponente aan te sluit op `n platskerm-TV
    Hoe om Bluetooth te konfigureerHoe om Bluetooth te konfigureer
    Hoe om jou eerste Java-program in Ubuntu Linux te skepHoe om jou eerste Java-program in Ubuntu Linux te skep
    Hoe om `n Java-applet te skepHoe om `n Java-applet te skep
    Hoe om `n Java-program te skryf met twee klasse met behulp van EclipseHoe om `n Java-program te skryf met twee klasse met behulp van Eclipse
    Hoe om `n komponent in SketchUp te maakHoe om `n komponent in SketchUp te maak
    Hoe om `n grafiese koppelvlak van rooster in Java te maakHoe om `n grafiese koppelvlak van rooster in Java te maak
    Hoe om Android op Ubuntu Linux te installeer met Eclipse IDEHoe om Android op Ubuntu Linux te installeer met Eclipse IDE
    » » Hoe om `n Swing koppelvlak met Java te skep
    © 2024 dmylogi.com