java中的按钮,创建和使用动作侦听器
我是eclipse的新手,我第一次创建按钮。我想我有基本的想法,但它不起作用。您可以在我的代码的任何部分添加的任何内容都非常有用。救命啊!这是我的密码: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
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)
之后,您还需要将()
替换为{}
。您遇到了什么错误?