菜鸟有问!谢谢各位支持!!呵呵

ZHENGYR820516 2004-05-13 11:48:36
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.lang.*;
import javax.swing.*;
public class mcface extends Applet implements ActionListener{
public void actionPerformed(ActionEvent e) {
...............}
public static void main(String args[])
{
JFrame f = new JFrame("Java Mial client");
.......
JButton B2 = new JButton("Receive");
B2.addActionListener(this);
..........
f.setSize(700, 500);
f.show();
}
}
编译出错
non-static variable this cannot be referenced from a static context
...全文
19 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sean_gao 2004-05-14
  • 打赏
  • 举报
回复
纠正一下。应该是在一个非static的方法中使用this。

对楼主的具体例子,后一个方案即可。
sean_gao 2004-05-14
  • 打赏
  • 举报
回复
先new一个mcface,再用this
或者把this换作new mcface()
ZHENGYR820516 2004-05-14
  • 打赏
  • 举报
回复
那应该怎么修正?
wangzhouyu 2004-05-14
  • 打赏
  • 举报
回复
public static void main(String args[])是一个静态方法,故方法中不存在隐含的this引用
所以B2.addActionListener(this);这一句是错误的。
yongfans 2004-05-14
  • 打赏
  • 举报
回复
你或者把它放到一个成员函数中
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.lang.*;
import javax.swing.*;
public class mcface extends Applet implements ActionListener{
public void init()
{
JFrame f = new JFrame("Java Mial client");
JButton B2 = new JButton("Receive");
B2.addActionListener(this);
..........
f.setSize(700, 500);
f.show();

}
public void actionPerformed(ActionEvent e) {
...............}
public static void main(String args[])
{
mcface m = new mcface();
mcface.init();
.......
}
wangzhouyu 2004-05-13
  • 打赏
  • 举报
回复
静态方法中是不能使用this的

62,615

社区成员

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

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