Hallo!
Hab folgendes Problem:
Ich möchte durch einen Klick auf einen JButton die Methode act() ausführen:
Hier die Klasse in der die Methode implementiert ist:
Die Klasse in der der JButton implementiert ist, sieht so aus:
Meine Frage: Wie muss ich die Methode "actionPerformed", oder muss ich die act-Methode ändern?, designen, sodass mit Klick auf den JButton die Methode act() ausgeführt wird?
Hab folgendes Problem:
Ich möchte durch einen Klick auf einen JButton die Methode act() ausführen:
Hier die Klasse in der die Methode implementiert ist:
Java:
import java.awt.event.ActionEvent;
mport javax.swing.JButton;
import at.ac.wuwien.moelltal.driver.GameCharacter;
import at.ac.wuwien.moelltal.driver.Manager;
import at.ac.wuwien.moelltal.driver.Tile;
import at.ac.wuwien.moelltal.driver.config.ConfigValue;
import at.ac.wuwien.moelltal.driver.Actor;
public class Kellner extends GameCharacter implements Actor{
public int x,y;
public int z;
public Manager m;
public GameCharacter c;
public void init(Manager m, ConfigValue v) {
this.m = m;
setName( v.getStringValue("name"));
setImage("/at/ac/wuwien/moelltal/plugin/s09/hotel/restTiles/kellner.PNG");
setWeight(63);
// set the objects position in the gamefield
Tile t = m.getArea().getTile( v.getIntValue("xpos"), v.getIntValue("ypos"));
setLoc(t);
x=t.xPos();
y=t.yPos();
setPlayerControlled(false);
m.registerActor( this );
}
public void act(){
if (y==50) {z=0;} // y gibt eine Koordinate eines Spielfelds zurück
else if (y<50)
{z=1;}
y = y+z;
Tile t = m.getArea().getTile(x,y);
if (t.isAccessible(this)) {
moveTo(t);
}
Die Klasse in der der JButton implementiert ist, sieht so aus:
Java:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import at.ac.wuwien.moelltal.driver.GameCharacter;
public class CallKellner extends JDialog implements ActionListener{
public JLabel rufen;
public JButton dButton;
public GameCharacter c;
public GameCharacter v;
public CallKellner (GameCharacter c, GameCharacter v) {
setTitle("Kellner rufen");
setLayout(new BorderLayout());
setSize(200, 100);
setVisible(true);
this.c =c;
this.v = v;
rufen = new JLabel("Herr Kellner, bitte bestellen ...");
dButton = new JButton("Danke");
JPanel controlPanel = new JPanel();
controlPanel.add(dButton);
add(rufen, BorderLayout.NORTH);
add(controlPanel, BorderLayout.CENTER);
dButton.addActionListener( this);
}
public void actionPerformed(ActionEvent e){
??
}
}
Meine Frage: Wie muss ich die Methode "actionPerformed", oder muss ich die act-Methode ändern?, designen, sodass mit Klick auf den JButton die Methode act() ausgeführt wird?