Gå til innhold

Knapper og getSource()....


Anbefalte innlegg

Hei godtfolk!

 

Jeg lurer på om det finnes en annen metode for å snappe opp at knappene blir trykket på, enn getSource()? En som fungerer noenlunde likt...

Håper dere skjønner hva jeg mener, ellers så er det bare å be meg utdype.... ;)

 

Det skjer i kroppen i actionPerformed hvertfall!

 

 

Også et spørsmål til med det samme: gjør "setText" og "append" omtrent det samme? Sånn i et JTextArea....

Lenke til kommentar
Videoannonse
Annonse

Knapper

void actionPerformed(ActionEvent e) kjøres når du har klikket på en knapp som har en lytterkontrakt med et objekt som er en instans av en klasse som implemeterer ActionListener-interfacet.

Object getSource() kan brukes til å finne ut hvilken knapp som ble trykket på dersom du har flere lytterkontrakter til dette objektet.

 

Kan også bruke en lytter for hver knapp som gjør at du ikke trenger getSource:

enKnapp.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
               System.out.println("Du trykket på knappen");
           }
       });

 

javax.swing.JTextarea: Det finnes 4 metoder for å endre teksten:

  • void append (String s): legger til s på slutten
  • void setText (String s): erstatter hele teksten med s
  • void insert (String s, int pos) setter inn s på posisjon pos
  • void replaceRange (String s, int start, int end) erstatter teksten fra start til end med s

Se forøvrig javadoc for API:

http://java.sun.com/j2se/1.4.2/docs/api/ja.../JTextArea.html

Endret av oro2
Lenke til kommentar

Jeg har aldri helt skjønt poenget med disse metodene, med mindre flere knapper har samme action. Er det noen fordeler med angi ActionCommand fremfor å bruke getSource?

 

Altså:

JButton knapp1 = new JButton("En knapp");

knapp1.setActionCommand("command1");

 

og i ActionPerformed (ActionEvent e) kan man da bruke en av disse to tester hvis man har flere knapper på samme lytter:

if (e.getSource() == knapp1)

if (e.getActionCommand() .equals("command1")

 

Hva er bedre med den siste? Med getSource() slipper man jo en kodelinje lenger oppe.

Spør ikke for å krangle, men fordi jeg ikke har brukt ActionCommand noe særlig før og lurer på om jeg burde begynne med det. ;)

Endret av oro2
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...