itholoinfo.com.com

Cum se creează o interfață GUI cu Swing în Java

În primul rând, trebuie să înțelegeți elementele de bază ale Java, precum și modul în care se ocupă de obiecte și interfețe. Acest tutorial presupune că aveți deja aceste cunoștințe.

Articolul explică cum să creați o aplicație simplă așa cum este prezentată în figura de mai jos, precum și să expuneți codul sursă.

Pentru a poziționa butoanele, câmpurile de text și alte componente în fereastra programului, trebuie să înțelegeți JPanel. Este un fel de container pentru componente, care ocupă spațiul dreptunghiular pe ecran și prezintă componentele inserate într-un mod simplu. Cât de precis sunt poziționate componentele depinde de aspectul pe care l-ați selectat pentru tabloul de bord. Pentru programarea manuală este recomandabil să știți cel puțin BorderLayout (Edge Layout) care introduce patru componente pe lateral și o componentă mare în centru, apoi FlowLayout care de obicei servește pentru a le organiza și a le poziționa unul lângă celălalt în linii orizontale și în final GridLayout care organizează componentele într-un tabel de l * c. Există mai multe opțiuni de aspect, dar restul sunt prea complexe pentru începători. Ideea cheie este că o "componentă" nu poate fi doar un buton sau o casetă de selectare - ar putea fi chiar un alt panou JPanel. Puteți realiza o interfață complexă prin simpla inserare a panourilor într-un altul și selectarea dispunerilor adecvate pentru ele.

Odată ce aveți o instanță de JPanel, apelați metoda setLayout pentru a configura configurația și apoi metoda .add pentru a adăuga componentele la panou. Pentru BorderLayout, trebuie să indicați poziția ca al doilea parametru. De exemplu, sunați la Panel.add (myBotao, BorderLayout.North) pentru a vă poziționa butonul pe marginea superioară sau pe marginea superioară.

Containerul de nivel superior, care este afișat pe ecran reprezentând o aplicație java, nu este un panou JPanel, ci un JFrame. Call meuJFrame.getContentPane (). Adăugați (meuJpanel, BorderLayout.Center) pentru a adăuga panoul principal pentru a instânca JFrame.

Pentru a face ca aplicația dvs. să facă mai mult decât doar "apariția", trebuie să înțelegeți și interfața ActionListener. Fiecare ActionListener non-abstractă are o metodă, actionPerformed, care se numește în mod automat atunci când utilizatorul face o „acțiune“ cu componenta în care este înregistrat ascultătorul (cu butonul de acțiune este, evident, pessionando-l). Pentru a înregistra o acțiune pentru un buton sau alt component, apelați .addActionListener.

pași

Metoda 1
Realizarea cadrului sau a cadrului general

Imaginea intitulată Creați o interfață grafică Swing în Java Pasul 1
1
Creați o clasă care extinde clasa JFrame.class. Această clasă va păstra toate componentele Graphic User Interface (GUI), cum ar fi butoanele și câmpurile de text.
  • Imaginea intitulată Creați un GUI în Swing în Java Pasul 2
    2
    Planificați aspectul global al primei aplicații. Un început bun ar putea fi un panou central cu BorderLayout și un alt panou în colțul inferior (BorderLayout.South). Acest al doilea panou poate conține FlowLayout cu unele butoane, casete de selectare și alte controale similare. În cele din urmă, poziționați JTextArea mare în centrul componentei centrale. Veți putea utiliza metodele getText () și setText () pentru a face o anumită interacțiune cu utilizatorul.
  • Imaginea intitulată Crearea unui GUI în Swing în Java Pasul 3
    3
    Scrie un constructor pentru clasa ta. Acest constructor ar trebui să creeze toate panourile și componentele pe care intenționați și să le poziționeze în mod corespunzător și se adaugă panoul final, care „păstrează totul“ pentru rama (meuFrame.getContentPanel (). Adăugați (meuLargePanel, BorderLayout.Center ).
  • Imaginea intitulată Creați o interfață grafică Swing în Java Pasul 4
    4
    Scrie principala metodă care va fi punctul de pornire al programului. În această metodă creează o instanță a ramei, setați dimensiunea inițială și locația (utilizați .setSize (x, y) en setLocation (lățime, înălțime)) și face să apară pe ecran, numindu-l cu setVisible (adevărat).
  • Metoda 2
    Planificarea răspunsurilor la acțiunile utilizatorilor

    Imaginea intitulată Creați o interfață grafică Swing în Java Pasul 5


    1
    Asigurați-vă că cadrul dvs. implementează interfața ActionListener. Acest lucru va permite clasei dvs. să asculte acțiunile componentelor.
  • Imaginea intitulată Creați un GUI în Swing în Java Pasul 6
    2
    Pentru fiecare buton, casetă de selectare sau alt control pe care l-ați creat, invoca metoda .addActionListener, trecând cadrul ca parametru.
  • Imaginea intitulată Creați o interfață grafică Swing în Java Pasul 7
    3
    Activați metoda abstractă ActionListener, actionPerformed (eveniment ActionEvent). În această metodă ar trebui să puneți un checker dacă doriți să știți unde a avut loc evenimentul de acțiune. Dacă verificatorul ar trebui să aibă o condiție care să raporteze ceva de genul "if (event.getSource () == button1)". Acest lucru verifică de unde a venit evenimentul și dacă a venit din butonul dvs. În interiorul verificatorului, faceți tot ce trebuie făcut atunci când butonul este apăsat.
  • Imaginea intitulată Creați o interfață grafică Swing în Java Pasul 8
    4
    JTextArea are o metodă .setText ("Textul meu") care arată interesantă cum puteți programa un răspuns vizibil la acțiunea dvs.
  • sfaturi

    • Nu este mult mai dificil să implementați interfața MouseListener și să utilizați aplicația .addMouseListener pentru ao înregistra pentru orice componentă.
    • Dacă doriți să desenați propriile obiecte grafice (cum ar fi o șah), citiți despre componentă pânză. Acesta poate fi poziționat în aplicația dvs. ca orice altă componentă, dar trebuie să scrieți metoda .paint care este responsabilă pentru desenarea obiectului.
    • Dacă aveți nevoie de pedr utilizatorul să treacă orice șir ca date de intrare, apelați metoda statică JOptionPane.showInputDialog (acest lucru, „Mesajul meu“). Primul parametru ar trebui să fie cadrul dvs. de aplicare sau un anumit panou (caseta de inserare va fi afișată în centrul ferestrei principale). Metoda returnează valoarea introdusă de utilizator în caseta de dialog.
    • În multe aplicații practice, cea mai utilizată componentă Swing este JTable. Când deja stăpâniți elementele de bază, încercați să o studiați și să o utilizați.
    • Este posibil să inserați toate componentele într-un singur panou folosind GridBagLayout, dar această clasă este mai complexă pentru a înțelege și utiliza.

    avertismente

    • Unele medii de dezvoltare oferă posibilitatea de a proiecta și monta GUI Swing într-un mod "prietenos". Cu toate acestea, acestea nu pot finaliza corect panoul cu funcții avansate. Printre aceste caracteristici se numără copaci, tabele, liste și casete cutie combo care modifică conținutul lor în timp ce programul rulează, precum și componente cu modele personalizate de date, printre altele. Codul, atunci când este făcut printr-un mecanism "prietenos", poate deveni un coșmar real dacă trebuie să îl finalizați manual mai târziu. Prin urmare, sfatul este că nu vă lipiți de aplicațiile GUI prietenoase pentru dezvoltarea graficelor grafice, deoarece acestea vă pot restrânge capacitățile de dezvoltare la resurse limitate.
    • Swing este o aplicație cu un singur filet. Dacă acțiunea dvs. necesită prea mult timp de procesare, va "îngheța" până când metoda .actionPerformed va aduce un profit. Aflați și utilizați caracteristicile multithreading ale Java pentru a face Swing-ul dvs. mai "viu" în timp ce timpul de procesare este în desfășurare.
    • Cele mai multe metode de componente Swing pot fi apelate numai în condiții de siguranță de la evenimentul care declanșează firul (care apelează .actionPerformed și alte metode cum ar fi ascultător). Dacă trebuie să apelați la un alt fir (de exemplu, pentru a actualiza o bară de progres sau prezintă rezultatele unui proces de lungă durată), citiți despre SwingUtils.invokeLater.

    Cod sursă

    {{CodeBox |

    java.awt.BorderLayout import-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 - / *** Un foarte simplu aplicație Java swing * Conține buton și caseta de selectare .. * Reacționează la manipulări cu aceste controale * prin modificarea textului în zona de text principal. ** @author audriusa * / public class wikiHow se extinde JFrame pune în aplicare ActionListener {/ *** Butonul. * / JButton myButton = new JButton ( "buton" ) - / *** A caseta de selectare * / JCheckBox MyCheckBox = new JCheckBox ( "Check") -. / *** zona de text * / JTextArea myText = new JTextArea ( "Textul meu") -. / *** A care panou de fund are buton * / JPanel bottomPanel = new JPanel () - .. / *** panoul de sus nivel care deține toate * / JPanel = new JPanel cutie universală () -. / *** 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 (acest lucru) -myCheckBox.addActionListener (aceasta) -setDefaultCloseOperation (DISPOSE_ON_CLOSE) -.} / *** programul * @param args programul de pornire parametri, n T folosit void main ([] String args) * / public static {wikiHow wikiHow MyApplication = new () - // Se specifică în cazul în care va apărea pe ecran :. myApplication.setLocation (10, 10) -myApplication.setSize (300, 300) - // Arata-l myApplication.setVisible (true) -} / *** Fiecare clasă abstractă non Que implementează ActionListener * trebuie să aibă această metodă ** @param și evenimentul de acțiune * / public void actionPerformed (ActionEvent .. e) {if (e.getSource () == myButton) myText.setText ( "butonul click") - else if (e.getSource () == MyCheckBox) myText.setText ( "căsuţa de stat a fost schimbat la" + MyCheckBox .isSelected ()) - elsemyText.setText () "Și ...?" -}}}}
    Distribuiți pe rețelele sociale:

    înrudit
    Cum de a crește memoria Java în Windows 7Cum de a crește memoria Java în Windows 7
    Cum se descarcă Java în Internet ExplorerCum se descarcă Java în Internet Explorer
    Cum de a crea primul program Java pe Ubuntu LinuxCum de a crea primul program Java pe Ubuntu Linux
    Cum să scrieți primul program JavaCum să scrieți primul program Java
    Cum se scrie un program de două clase în Java folosind EclipseCum se scrie un program de două clase în Java folosind Eclipse
    Cum se afișează o casetă de dialog cu AlertDialog pe AndroidCum se afișează o casetă de dialog cu AlertDialog pe Android
    Cum se activează Java în FirefoxCum se activează Java în Firefox
    Cum se imprimă cotațiile în JavaCum se imprimă cotațiile în Java
    Cum se instalează Android pe Linux Ubuntu cu Eclipse IDECum se instalează Android pe Linux Ubuntu cu Eclipse IDE
    Cum se instalează Kitul de dezvoltare Java (JDK) pe Mac OS XCum se instalează Kitul de dezvoltare Java (JDK) pe Mac OS X
    » » Cum se creează o interfață GUI cu Swing în Java
    © 2021 itholoinfo.com.com