gtemata.com

Cum se creează un GUI cu Swing în Java

În acest articol, veți învăța cum să creați o aplicație similară cu cea prezentată în figură - în plus, veți primi, de asemenea, codul sursă.

Pentru a insera butoanele, etichetele și alte componente în fereastra programului, trebuie să vă studiați mai întâi JPanel. JPanel este un fel de container de componente, care ocupă spațiu în fereastră și aranjează vizual componentele pe care ați decis să le utilizați. Modul în care sunt aranjate aceste componente depinde de aspectul pe care l-ați alocat panoului. Pentru a programa manual, va trebui să studiezi cel puțin BorderLayout, care poziționează patru componente pe laturi și o componentă în mijloc, atunci va trebui să studiezi FlowLayout, care, în schimb, aranjează componentele în rânduri orizontale și în final GridLayout, care plasează componentele într-o tabelă arbitrară n *. Există și altele, dar ele pot fi prea complexe pentru programatorul novice și, prin urmare, nu vor fi enumerate. Conceptul fundamental pe care trebuie să-l înțelegeți este că a "component" nu poate fi doar un buton sau o casetă de bifare, ci și un altul "JPanel". Astfel, prin plasarea panourilor în interiorul celuilalt și prin alegerea unui aspect pentru fiecare dintre ele, puteți crea o interfață de utilizator foarte complexă. După crearea unei instanțe "JPanel", utilizați metoda ".setLayout" pentru a seta aspectul și apoi utilizați ".add" pentru a adăuga componente. Pentru "BorderLayout", va trebui să setați și coordonatele ca al doilea parametru. De exemplu, sunați "myPanel.add (myButton, BorderLayout.North)" pentru a plasa un buton în colțul superior. Containerul "nivel superior", care apare pe ecran reprezentând aplicația Java, nu este a "JPanel" dar a "JFrame". apel "myJFrame.getContentPanel () adăugați (myJPanel, BorderLayout.Center)" pentru a adăuga panoul "principal" all`instanza "JFrame". Pentru a vă asigura că aplicația dvs., în plus față de afișarea pe ecran, face și mai mult trebuie să studiați interfața "ActionListener". orice "ActionListener" nu abstract are metoda sa, "actionPerformed", care se numește automat când utilizatorul face a"acțiune" în componenta pe care se află "ascultător" (acțiunea, în ceea ce privește butoanele, de exemplu, ar fi presiunea asupra butonului). Pentru a înregistra un ascultător de acțiune pentru un buton sau altă componentă, utilizați metoda .addActionListener..

paşi

Metoda 1

Creați cadrul principal
Imaginea intitulată Creați o interfață grafică Swing în Java Pasul 1
1
Creați o clasă care extinde clasa "JFrame". Această clasă va conține toate componentele GUI, cum ar fi butoanele și casetele de text.
  • Imaginea intitulată Creați o interfață grafică Swing în Java Pasul 2
    2
    Desenați aspectul primei aplicații. Un început bun ar putea fi un panou central cu "BorderLayout" cu un alt panou în partea de jos ("BorderLayout.South"). Acest al doilea panou ar putea folosi "FlowLayout" și conține mai multe butoane, casete de selectare și controale similare. În cele din urmă, puneți unul mare "JTextArea" în mijlocul componentei centrale. Veți putea utiliza funcțiile "getText ()" și "setText ()" pentru a crea interacțiuni de text cu utilizatorul.
  • Imaginea intitulată Creați o interfață grafică Swing în Java Pasul 3
    3
    Scrie constructorul pentru clasă. Acest constructor are sarcina de a crea toate panourile și componentele pe care doriți să le creați, poziționându-le corect unul în celălalt și apoi adăugând panoul final care unește întregul cadru: (myFrame.getContentPane (). adăugați (myLargePanel, BorderLayout.Center)."
  • Imaginea intitulată Creați o interfață grafică Swing în Java Pasul 4
    4
    Scrieți principalele funcții, care vor fi punctul de intrare al programului. În acest fel, creează o instanță a cadrului, stabilește poziția și dimensiunile inițiale (folosind."setSize (x, y)") e .setLocation (lățime, înălțime) `) și asigurați-vă că acestea apar pe ecran folosind .setVisible (adevărat).
  • Metoda 2

    Programarea răspunsurilor la o acțiune a utilizatorului
    Imaginea intitulată Creați o interfață grafică Swing în Java Pasul 5
    1
    Implementați interfața "ActionListener" în cadru. În acest fel, clasa dvs. va asculta interacțiunile utilizatorilor cu componentele.


  • Imaginea intitulată Creați o interfață grafică Swing în Java Pasul 6
    2
    Pentru fiecare buton, caseta de selectare sau altă verificare pe care ați creat-o, utilizați această caracteristică."addActionListener", transferând numele cadrului dvs. ca parametru ("acest").
  • Imaginea intitulată Creați o interfață grafică Swing în Java Pasul 7
    3
    Omiteți funcția abstractă a ActionListener "acțiunePerformed (eveniment ActionEvent)". Procedând astfel, va trebui să introduceți instrucțiuni "dacă" pentru a verifica originea acțiunii. educație "dacă" ar trebui să conțină o astfel de condiție ""dacă (event.getSource () == button1")". Această declarație controlează originea evenimentului și ora la care a apărut evenimentul de la buton. În cadrul educației "dacă", scrieți acțiunea pe care doriți să o finalizați la apăsarea butonului.
  • Imaginea intitulată Crearea unui GUI în Swing în Java Pasul 8
    4
    JTextArea are o funcție .setText ("myText"). Aceasta este o modalitate bună de a introduce răspunsuri textuale vizuale la acțiune.
  • Sfaturi

    • Dacă doriți să învățați cum să desenați propriile obiecte grafice (cum ar fi o tablă de șah), studiați componenta pânză. Acesta din urmă poate fi plasat în aplicația dvs. la fel ca oricare altul, dar va trebui să utilizați funcția .patint, care este responsabilă pentru desenarea componentei pe ecran.
    • O componentă utilă Swing în multe aplicații practice este JTable. După ce ați învățat elementele de bază, studiați-o imediat.
    • Implementați și utilizați interfața "MoustListener" nu este mult mai dificil decât ceea ce sa explicat până acum. Inserare."addMouseListener" pentru a-l înregistra pe fiecare componentă.
    • Dacă doriți ca programul dvs. să solicite un șir de text de intrare, utilizați funcția statică JOptionPane.showInputDialog (acest lucru, "mesaj"). Primul parametru ar trebui să fie cadrul aplicației sau al unui panou (caseta de intrare va apărea în mijlocul panoului principal). Această funcție returnează valoarea introdusă de utilizator în dialog.
    • Puteți pune toate componentele într - un singur panou folosind "GridBagLayout", această clasă, cu toate acestea, este mai dificil de învățat.

    Avertismente

    • Unele medii de dezvoltare vă permit să compilați GUI Swing folosind metode "ușor de utilizat". Cu toate acestea, aceste programe nu vă permit să creați corect un panou cu funcții complexe. Printre aceste funcții se numără copaci, tabele, liste, casete combo care își schimbă conținutul în timp ce programul se execută și, de asemenea, componente cu modele personalizate de date și așa mai departe. Codul, inițial compus într-o manieră "ușor de utilizat", ar putea deveni un coșmar real când mai târziu trebuie să îl modificați și / sau să îl completați manual. Deci, nu te prea obișnuit cu aceste programe de design GUI, altfel îți limitezi foarte mult șansele de programator.
    • Swing este o aplicație cu un singur fir. Dacă gestionarea acțiunilor necesită prea mult timp de calcul, se va opri până când returnați metoda ".actionPerformed". Aflați cum să utilizați Java în multithreading pentru a rămâne în viață "leagăn" și să utilizeze în același timp procese intensive cu resurse.
    • Cele mai multe metode ale componentelor Swing pot fi numite în siguranță de către Thread Dispatching Thread (ceea ce se numește ".actionPerformed" și alte metode similare). Dacă trebuie să apelați aceste metode dintr-un alt fir (de exemplu, pentru a actualiza o bară de progres sau pentru a arăta rezultatul unui anumit proces lung), studiați metoda "SwingUtils.invokeLater".

    Cod sursă

    {{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 - / *** aplicație Java foarte simplu * Conține butoane și casetele de selectare. * * Răspunde la interacțiunea cu controalele prin modificarea textului afișat în zona principală. ** @autorer audriusa * / public class WikiHow extinde JFrameimplements ActionListener {/ *** Butonul. * / JButtonmyButton = new JButton ("buton") - / *** Caseta de selectare. * / JCheckBoxmyCheckBox = nou JCheckBox ("Verificați") - / *** Aria de text * / JTextAreamyText = nou JTextArea ("Textul meu") - / *** Panoul inferior, care conține butonul * / JPanelbottomPanel = new JPanel () -. / *** Panoul de sus, care conține întregul * / JPanelholdAll = new JPanel () -. / *** constructorul * / publice WikiHow () {bottomPanel.setLayout (nou FlowLayout ()) -. bottomPanel.add (myCheckBox) -bottomPanel.add (myButton) -holdAll.setLayout (nou BorderLayout ()) - holdAll.add (bottomPanel, . BorderLayout.SOUTH) -holdAll.add (myText, BorderLayout.CENTER) -getContentPane () se adaugă (cutie universală, BorderLayout.CENTER) -myButton.addActionListener (aceasta) -myCheckBox.addActionListener (aceasta) -setDefaultCloseOperation (DISPOSE_ON_CLOSE) -} / *** Programul * @paramde definește parametrii de pornire ai programului. . Nu a fost folosit void main ([] String args) statice * / Public {WikiHow MyApplication = new WikiHow () - // Precizați care apare pe schermo.myApplication.setLocation (10, 10) -myApplication.setSize (300, 300) - // l Arata myApplication.setVisible (true) -!..} / *** Fiecare clasă de bază non-abstractă care pune în aplicare ActionListener * ar trebui să folosească această metodă ** @parame evenimentul de acțiune * / public void actionPerformed (ActionEvente) {if (e. getSource () == myButton) myText.setText ("Clic pe buton") -else dacă (e.getSource () == myCheckBox) myText.setText ("Starea căsuței a fost modificată la + myCheckBox.isSelected ()) - elsemyText.setText ("Și ...?") -}}}}
    Distribuiți pe rețelele sociale:

    înrudit