16. august 2001 - 19:16Der er
13 kommentarer og 1 løsning
Button?
Hej jeg har lavet dette script!
import java.applet.*; import java.awt.*;
public class Hej extends Applet { public void init() { Label tekst = new Label(\"Prøv at skriv Mads:\");
add(tekst);
TextField field = new TextField(10); add(field);
Button knap = new Button(\"Test\"); add(knap);
TextArea status = new TextArea(10,10); status.setBackground(Color.black); status.setForeground(Color.white); status.setText(\"Hejsa\"); status.setEditable(false); add(status);
}
}
hvordan gør jeg så nå man trykker på knappen så tager den teksten fra field og pluser det ind i status???
du skal lave en inner class der implementerer iterfacet ActionListener, og så putte et instans af den klasse ind som parameter i knappens addActionListener
public void init() { Label tekst = new Label(\"Prøv at skriv Mads:\");
add(tekst);
TextField field = new TextField(10); add(field);
Button knap = new Button(\"Test\"); knap.addActionListener(new BtnHandler()); add(knap);
status = new TextArea(10,10); status.setBackground(Color.black); status.setForeground(Color.white); status.setText(\"Hejsa\"); status.setEditable(false); add(status); }
class BtnHandler implements ActionListener { public void actionPerformed(ActionEvent e) { status.setText(\"Du klikkede på knappen\"); } } }
du kan enten lave en klasse til hver knap, eller du kan bruge ActionEvent parameteren som actionPerformed får med, til at afgøre hvad det er for en knap man har trykket på: e.GetActionCommand(), der returnerer den streng du gav knappen i dens constructor. Hvis du f.eks. laver en knap mere der hedder Test2, og bruger samme ActionListener kan du skrive sådan her:
Button knap = new Button(\"Test\"); knap.addActionListener(new BtnHandler()); Button knap2 = new Button(\"Test2\"); knap2.addActionListener(new BtnHandler());
...
class BtnHandler implements ActionListener { public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); if (cmd == \"Test\") { //code } else if (cmd == \"Test2\") { //code } } }
Når man laver en inner class, får man ekstra class-fil, der i dette tilfælde vil hedde Hej$BtnHandler.class
TextArea status; TextField field; public void init() { Label tekst = new Label(\"Prøv at skriv Mads:\");
add(tekst);
TextField field = new TextField(10); add(field);
Button knap = new Button(\"Test\"); knap.addActionListener(new BtnHandler()); add(knap);
status = new TextArea(10,10); status.setBackground(Color.black); status.setForeground(Color.white); status.setText(\"Hejsa\"); status.setEditable(false); add(status); }
class BtnHandler implements ActionListener { public void actionPerformed(ActionEvent e) {
String ny = field.getText(); status.setText(ny); repaint();
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.