2

私は方法まで勉強しただけで、UNIが残りを教えてくれるまで待つのに十分な忍耐力がないので、これは面白いと思いました...Javaで押すボタンに応じて動く中央の円でGUIを作成したいと思います。たくさん読んだ後、私はなんとかこの方法でそれを成し遂げることができました。したがって、質問で言及されたエラーに到達する前に、19個のエラーがあり、それらすべてを理解したときにのみ、このエラーが突然発生しました。誰かの神経質な原因をチェックしないことを願っています。この間違いはプログラミングの基盤が不足しているためだと確信しています。どんな助けでも大歓迎です。「<---」でエラーが発生した場所を指摘しました

import java.awt.*;
import java.awt.event.*;
public class Move_the_ball extends Frame {

public static void main(String[] args) {
    Move_the_ball me = new Move_the_ball();
    me.setVisible(true);
}
public Move_the_ball(){
    setSize(700,700);
    setLocation(100,100);
    setTitle("Moving the ball");
    setLayout(new BorderLayout());
    Panel buttonPanel = new Panel();
    buttonPanel.setBackground(Color.blue);
    buttonPanel.setLayout(new FlowLayout());

    Button goUp = new Button("Go up");
    goUp.addActionListener(this); <-----------------
    buttonPanel.add(goUp);

    Button goDown = new Button("Go down");
    goDown.addActionListener(this); <--------------
    buttonPanel.add(goDown);


    Button turnRight = new Button("Turn right");
    turnRight.addActionListener(this);  <-------------
    buttonPanel.add(turnRight);


    Button turnLeft = new Button("Turn left");
    turnLeft.addActionListener(this); <---------------
    buttonPanel.add(turnLeft);
}
    public void paint(Graphics g)
        {
        g.fillOval(x,y,h,d);
}
    private int x=200;
    private int y=100;
    private int h=50;
    private int d=50;

    public void actionPerformed (ActionEvent e){
        String actionCommand = e.getActionCommand();
        if(actionCommand.equals("Go up"))
        {
            y=y-5;
            repaint();
        } else if (actionCommand.equals("Go down"))
        {
            y=y+5;
            repaint();
        } else if (actionCommand.equals("Turn right"))
        {
            x=x+5;
            repaint();
        } else if (actionCommand.equals("Turn left"));
        {
            x=x-5;
            repaint();
        }
    } 
 }
4

1 に答える 1

4

これが機能するには、クラスにインターフェースをMove_the_ball実装する必要がありjava.awt.event.ActionListenerます。

import java.awt.*;
import java.awt.event.*;
public class Move_the_ball extends Frame implements ActionListener {

   public void actionPerformed(ActionEvent e) {
      // handle the e event
   }
于 2012-05-25T15:03:29.930 に答える