Ko uporabnik izvede določeno dejanje mora biti sposoben učinkovito ravnati. Poslušalci akcij v Javi so v takšnih situacijah zelo koristni. V tem članku bomo razpravljali o naslednjih točkah:
Uvod v poslušalec akcij
Kot programer ste dolžni določiti, kaj lahko poslušalec dejanj naredi za delovanje uporabnika. Oglejmo si na primer preprost scenarij, ko uporabnik v menijski vrstici izbere določen element ali pritisne tipko Enter v besedilnem polju, da gre v novo vrstico. Ko so takšne uporabniške funkcije končane, se sporočilo 'izvedeno dejanje' pošlje vsem ustreznim poslušalcem dejanj, opredeljenim v ustrezni komponenti.
Spodaj slikovito opisuje, kako napisati poslušalca akcije:
oddajanje dvojnika v int javo
Tu je ključni in sestavni del objekt, ki lahko implementira vmesnik poslušalca dejanj. Program mora ta predmet prepoznati kot poslušalca dejanj na gumbu, ki ni nič drugega kot vir dogodka.
Tako uporabimo metodo addActionListener, ko uporabnik klikne gumb, sproži akcijski dogodek. To prikliče metodo actionPerformed poslušalca akcije. Upoštevajte, da je to edina metoda v vmesniku ActionListener. Argument metode je objekt ActionEvent, ki zagotavlja informacije o dogodku in njegovem viru
Razred akcijskih dogodkov
Metode | Opis |
String getActionCommand () | Vrne niz, povezan s tem dejanjem. Večina predmetov, ki lahko sprožijo akcijske dogodke, podpira metodo, imenovano setActionCommand, ki omogoča nastavitev tega niza. |
int getModifiers () | Vrne celo število, ki ga je uporabnik pritisnil, ko je bil dogodek med dejanjem. Nekatere konstante, ki jih določa ActionEvent, kot so SHIFT_MASK, CTRL_MASK, META_MASK in ALT_MASK, se uporabljajo za določanje pritisnjenih tipk. Če uporabnik na primer izbere element menija, potem izraz ni nič |
Predmet getSource () (v java.util.EventObject) | Vrne objekt, ki je sprožil dogodek. deli java programa |
Izvajanje poslušalca dejanj v Javi
paket com.javapointers.javase import java.awt.BorderLayout import java.awt.event.ActionEvent import java.awt.event.ActionListener import javax.swing.JButton import javax.swing.JFrame import javax.swing.JTextArea javni razred ActionListenerTest ActionListener {JButton button JFrame frame JTextArea textArea public ActionListenerTest () {button = new JButton ('Click Me') frame = new JFrame ('ActionListener Test') textArea = new JTextArea (5, 40) button.addActionListener (this) textArea. setLineWrap (true) frame.setLayout (new BorderLayout ()) frame.add (textArea, BorderLayout.NORTH) frame.add (button, BorderLayout.SOUTH) frame.pack () frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE) frame.setVis. true)} @Override public void actionPerformed (ActionEvent e) {textArea.setText (textArea.getText (). concat ('Kliknili ste gumb'))} public static void main (String args []) {ActionListenerTest test = new ActionListenerTest ()}}
V zgornji kodi mora biti poslušalec dejanj implementiran v razred, preden lahko dostopate do njega. Zato obvezno dodajte ključno besedo implements in poslušalca.
button.addActionListener (to)
To pomeni, da bo gumb komponente vključen v komponente, ki jim sledimo za akcijski dogodek. V poslušalnik dejanj morate dodati komponento, da boste lahko dodali kode, ko uporabnik klikne določeno komponento. Komponent, ki niso dodane s poslušalcem dejanj, ne bo mogoče nadzorovati.
Zdaj pa si oglejmo še en preprost primer poslušalca dejanj v Javi in kako deluje.
2. primer:
Tu so trije preprosti predmeti gumbov Java, kjer so poimenovani kot rdeča, zelena in modra. Glede na klikni gumb se spremeni barva zaslona v ozadju.
Spodnji diagrami prikazujejo ustrezen izhod kode, ki je na koncu tega dokumenta. Prikazan je le en primerek zaslona, ki se obarva modro. Z uporabo te kode si lahko ogledate druge barve, kot sta rdeča in zelena.
Gumb 'rb' je povezan z ActionListenerjem. Parameter »this« predstavlja ActionListener. Če povezovanje ne bo izvedeno, bo program prikazal 3 gumbe, vendar brez obdelave dogodkov.
metoda getActionCommand () razreda ActionEvent vrne oznako ustreznega gumba, ki ga je uporabnik kliknil kot niz. str.
import java.awt. * import java.awt.event. * javni razred ButtonDemo razširja Frame implementira ActionListener {Button rb, gb, bb // tri referenčne spremenljivke gumba public ButtonDemo () // konstruktor za določanje lastnosti gumba { FlowLayout fl = new FlowLayout () // nastavitev postavitve na okvir setLayout (fl) rb = new Button ('Red') // pretvorba spremenljivk v predmete gb = new Button ('Green') bb = new Button ('Blue') rb.addActionListener (this) // povezava gumbov Java z ActionListener gb.addActionListener (this) bb.addActionListener (this) add (rb) // dodaj vsak gumb Java v okvir add (gb) add (bb) setTitle ('Button v akciji ') setSize (300, 350) // dimenzije okvirja, (širina x višina) setVisible (true) // definiranje okvira je vidno na monitorju, privzeto je setVisible (false)} // preglasi samo abstraktno metodo vmesnika ActionListener public void actionPerformed (ActionEvent e) {String str = e.getActionCommand () // za prepoznavanje gumba, ki ga je kliknil System.out.println ('Kliknil si' + str + 'gumb') // if (str.equals ('Red')) {setBackground (Color.red)} else if (str.equals ('Green')) {setBackground (Color.green)} else if (str.equals ('Blue') ) {setBackground (Color.blue)}} javna statična void main (String args []) {new ButtonDemo () // anonimni objekt ButtonDemo za klic konstruktorja}}
kako napisati tostring metodo v javi -
S tem smo prišli do konca tega članka o poslušalcu dejanj v Javi. Upam, da ste razumeli Action Listener v Javi.
Oglejte si Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, ki se širijo po vsem svetu. Edurekin tečaj za usposabljanje in certificiranje Java J2EE in SOA je namenjen študentom in strokovnjakom, ki želijo biti razvijalec Java. Tečaj je zasnovan tako, da vam nudi uvod v programiranje Java in vas usposobi za osnovne in napredne koncepte Java, skupaj z različnimi Java okviri, kot so Hibernate & Spring
Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje tega spletnega dnevnika »Poslušalci dejanj na Javi«, da se vam bomo oglasili takoj, ko bo mogoče.