java中的按钮,创建和使用动作侦听器

java中的按钮,创建和使用动作侦听器,java,eclipse,swing,applet,radio-button,Java,Eclipse,Swing,Applet,Radio Button,我是eclipse的新手,我第一次创建按钮。我想我有基本的想法,但它不起作用。您可以在我的代码的任何部分添加的任何内容都非常有用。救命啊!这是我的密码: import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class MovingBox extends Applet { Thread thread; Dimension dim; Image img; Graph

我是eclipse的新手,我第一次创建按钮。我想我有基本的想法,但它不起作用。您可以在我的代码的任何部分添加的任何内容都非常有用。救命啊!这是我的密码:

import java.applet.Applet; 
import java.awt.*; 
import java.awt.event.*; 

public class MovingBox extends Applet 
{
  Thread thread; 
  Dimension dim; 
  Image img; 
  Graphics g; 
  Color red = null;
  Color blue = null;
  Font fnt16P = null;


  public void init()
  { 
    resize(800,500);    


    Button b_Up = new Button("Up"); 
    b_Up.setSize(100, 25);
    b_Up.setLocation(450,450+ 90);
    b_Up.setBackground(red); 
    b_Up.setForeground(blue);
    b_Up.setFont(fnt16P);
    b_Up.setVisible(true);
    b_Up.addActionListener((ActionListener) this);
    add(b_Up);


  }

  public void paint(Graphics gfx)
  {
    g.setColor(Color.green);
    g.fillRect(0,0,800,500);
  }
  public void actionPerformed(ActionEvent event)
  {
    int value, total;;
    Object cause = event.getSource();

    if (cause == b_Up)
    (
    )

  }

}

此代码无法编译,原因有三:

变量
b_Up
actionPerformed
中不可见。使其成为类成员变量以使其工作,并将其声明为

b_Up = new Button("Up"); 
您不能将此
注册为
ActionListener

b_Up.addActionListener(this);
除非该类属于该类型,否则该类需要声明为

public class MovingBox extends Applet implements ActionListener {
使用大括号而不是圆括号来定义
if
语句的主体:

if (cause == b_Up) {
   ...
}
考虑使用以下方法:

  • 对组件使用匿名
    ActionListener
    。更好的实施方法
  • private
    类成员变量-一定要使用这些变量
  • Java命名约定建议使用camelCase而不是匈牙利符号
  • 考虑在重量级AWT上使用更现代的轻量级Swing Library

不定义图形对象。使用传递给方法的图形对象

Graphics g; 
...
public void paint(Graphics gfx)
  {
    g.setColor(Color.green);
    g.fillRect(0,0,800,500);
  }
不要手动设置大小/位置。使用布局管理器并让布局管理器完成其工作

Button b_Up = new Button("Up"); 
b_Up.setSize(100, 25);
b_Up.setLocation(450,450+ 90);

我建议你花时间学习如何使用Swing,而不是学习AWT。从基础代码开始。

当前代码中有什么不起作用?在
if(cause==b_Up)
之后,您还需要将
()
替换为
{}
。您遇到了什么错误?