Deelay Skrevet 17. november 2004 Del Skrevet 17. november 2004 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
oro2 Skrevet 17. november 2004 Del Skrevet 17. november 2004 (endret) 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 17. november 2004 av oro2 Lenke til kommentar
Dovrebanen Skrevet 17. november 2004 Del Skrevet 17. november 2004 Du kan bruke getActionCommand() for å finne hvilken knapp du har trykket. Da må du ha setActionCommand() på knappen først. Lenke til kommentar
oro2 Skrevet 17. november 2004 Del Skrevet 17. november 2004 (endret) 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 17. november 2004 av oro2 Lenke til kommentar
buskmann Skrevet 18. november 2004 Del Skrevet 18. november 2004 1. Kjekt når du ikke har tilgjengelig en referanse til knappen. 2. Du har mulighet til å endre actionCommand i løpet av programkjøringen, og derigjennom dynamisk endre handling som skal skje. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå