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 principalMetoda 2
Programarea răspunsurilor la o acțiune a utilizatoruluiSfaturi
- 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 ...?") -}}}}
- Cum se activează Java în Firefox
- Cum să activați pluginurile
- Cum se actualizează extensiile Firefox
- Cum se adaugă un cronometru în Visual Basic
- Cum de a crește memoria Java în Windows 7
- Cum se conectează un televizor cu plasmă
- Cum se construiește un calculator economic
- Cum de a crea primul program Java în Ubuntu Linux
- Cum se creează un server web personal cu XAMPP
- Cum se creează o rețea GUI în Java
- Cum să dezinstalați un add-on pentru Firefox
- Cum se instalează o placă de bază
- Cum se instalează Android pe Ubuntu Linux cu Eclipse IDE
- Cum se instalează add-on-ul Selenium IDE
- Cum să instalați o sursă de alimentare
- Cum se descompune un transportator în componentele sale
- Cum se adaugă și se scade vectorii
- Cum să eliminați un add-on de la Mozilla Firefox
- Cum să alegeți componentele hardware ale unui computer
- Cum să utilizați cablurile video S corect
- Cum se utilizează teorema lui Pythagorean