一个JAVA问题,事件监听接口怎么不能编译,但是去掉就可以了呢?(我必须要这个监听接口,怎样解决)

shijiansupervisor 2003-06-17 11:35:51
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class Grade extends Applet implements ActionListener
{
//Frame
Frame f = new Frame();
BorderLayout br = new BorderLayout();
Panel P1 = new Panel();
Panel P2 = new Panel();
Panel P3 = new Panel();
Panel P4 = new Panel();

Label Ltit = new Lable("学生成绩表");
Label Lyw = new Lable("语文");
Label Lsx = new Lable("数学");
Label Lls = new Lable("历史");
Label Ldl = new Lable("地理");
Label Lyy = new Lable("英语");

Label Ladd = new Label("总分");
Label Lavg = new Label("平均分");
Label Laddss = new Label("_____");
Label Lavgss = new Label("_____");

TextField txtyw = new TxtField("",3);
TextField txtsx = new TxtField("",3);
TextField txtyy = new TxtField("",3);
TextField txtls = new TxtField("",3);
TextField txtdl = new TxtField("",3);

Button Badd = new Button("计算总分");
Button Bavg = new Button("计算平均分");

public void init()
{
f.setLayout(br);
P1.add(Ltit);
P1.setLayout(new FlowLayout());
P1.setLayout(new FlowLayout(3,4));
P1.setLayout(new FlowLayout(1,4));
P1.setLayout(new FlowLayout(1,2));

P2.add(Lyw);
P2.add(txtyw);
P2.add(Lsx);
P2.add(txtyw);
P2.add(Lyy);
P2.add(txtyy);
P2.add(Lls);
P2.add(txtls);
P2.add(Ldl);
P2.add(txtdl);

P3.add(Ladd);
P3.add(Laddss);
P3.add(Lavg);
P3.add(Lavgss);

P4.add(Badd);
P4.add(Bavg);

add(P1);
add(P2);
add(P3);
add(P4);
//
}
public void paint(Graphics g)
{
g.drawString("",20,20);
}
...全文
29 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
geyf 2003-06-17
  • 打赏
  • 举报
回复
这段代码的错误不少,给你改了,看看。而且功能也加上了:)
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class Grade extends Applet implements ActionListener
{
//Frame
Frame f = new Frame();
BorderLayout br = new BorderLayout();
Panel P1 = new Panel();
Panel P2 = new Panel();
Panel P3 = new Panel();
Panel P4 = new Panel();

Label Ltit = new Label("学生成绩表");
Label Lyw = new Label("语文");
Label Lsx = new Label("数学");
Label Lls = new Label("历史");
Label Ldl = new Label("地理");
Label Lyy = new Label("英语");

Label Ladd = new Label("总分");
Label Lavg = new Label("平均分");
Label Laddss = new Label("_____");
Label Lavgss = new Label("_____");

TextField txtyw = new TextField("",3);
TextField txtsx = new TextField("",3);
TextField txtyy = new TextField("",3);
TextField txtls = new TextField("",3);
TextField txtdl = new TextField("",3);

Button Badd = new Button("计算总分");
Button Bavg = new Button("计算平均分");

public void init()
{
f.setLayout(br);
P1.add(Ltit);
P1.setLayout(new FlowLayout());

P2.add(Lyw);
P2.add(txtyw);
P2.add(Lsx);
P2.add(txtsx);
P2.add(Lyy);
P2.add(txtyy);
P2.add(Lls);
P2.add(txtls);
P2.add(Ldl);
P2.add(txtdl);

P3.add(Ladd);
P3.add(Laddss);
P3.add(Lavg);
P3.add(Lavgss);

P4.add(Badd);
P4.add(Bavg);
Badd.addActionListener(this);
Bavg.addActionListener(this);
add(P1);
add(P2);
add(P3);
add(P4);
//
}
int sum=0;
public void actionPerformed(ActionEvent e) {

if(e.getSource()==Badd){
try{
int num1=Integer.parseInt(txtyw.getText().trim());
int num2=Integer.parseInt(txtsx.getText().trim());
int num3=Integer.parseInt(txtyy.getText().trim());
int num4=Integer.parseInt(txtls.getText().trim());
int num5=Integer.parseInt(txtdl.getText().trim());
sum=num1+num2+num3+num4+num5;
Laddss.setText(""+sum);
}catch(Exception en){
Laddss.setText("wrong!");
}
}else if(e.getSource()==Bavg)
Lavgss.setText(""+sum/5);
}

public void paint(Graphics g)
{
g.drawString("",20,20);
}
}
relive 2003-06-17
  • 打赏
  • 举报
回复
没有
public void actionPerformed(ActionEvent e){}
所以编译不通过。

没有
Badd.addActionListener(this);
Bavg.addActionListener(this);
所以即使编译通过了也不会有反应。

另,Badd、Bavg这些东西最好不要用大写开头。
topsonstar 2003-06-17
  • 打赏
  • 举报
回复
dynku(随风来去.cn)说得对。。

没有实现ActionListener接口的
public void actionPerformed(ActionEvent e)
方法
随风来去 2003-06-17
  • 打赏
  • 举报
回复
你是不是没有实现public void actionPerformed(ActionEvent ae)方法啊
实现他,可以在里面通过 ae.getSource()方法获得事件来源对象,如果是按钮,就加所有的内容并赋值。给按钮添加监听器Badd.addActionListener(this)
shijiansupervisor 2003-06-17
  • 打赏
  • 举报
回复
如果要将5个文本框中的内容通过按钮的点击事件加起来赋值给“Laddss”该怎么办呢?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧