我是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)
(
)
}
}
答案 0 :(得分:2)
此代码无法编译,原因有三个:
变量b_Up
在actionPerformed
中不可见。使它成为一个类成员变量,使其工作并将其声明为
b_Up = new Button("Up");
您无法将this
注册为ActionListener
b_Up.addActionListener(this);
除非该类属于该类型,因此该类需要声明为
public class MovingBox extends Applet implements ActionListener {
使用大括号而不是括号来定义if
语句的主体:
if (cause == b_Up) {
...
}
考虑使用以下内容:
ActionListener
。更好的实施方法private
类成员变量 - 绝对使用这些答案 1 :(得分:2)
不要定义Graphics对象。使用传递给方法的Graphics对象。
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。从Swing tutorial开始,了解基础知识。