【问题标题】:no response to my code没有回应我的代码
【发布时间】:2012-11-20 17:29:42
【问题描述】:

我试图学习小程序并在执行此代码时,没有编译时错误,但问题是我没有得到对我的代码的任何响应。我使用简单的记事本和appletviewer 来完成它。单击小程序时,应该显示坐标,但没有发生。我尝试输入相关的 html 代码并通过浏览器执行,但响应是相同的。任何帮助将不胜感激

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
/*
<applet code="MyMouseApplet.class"
width = "400"
height = "400"> 
</applet>*/

public class MyMouseApplet extends Applet implements MouseListener{
int x,y;
String str=" ";
public void init(){
this.addMouseListener(this);
}
public void paint(Graphics g){
g.drawString(str,x,y);
}
public void update(Graphics g){
paint(g);
}
public void mouseClicked(MouseEvent m)
{
int x = m.getX();
int y = m.getY();
str="x:" + x + "y:" + y;
repaint();
}
public void mouseExited(MouseEvent m){}
public void mouseEntered(MouseEvent m){}
public void mousePressed(MouseEvent m){}
public void mouseReleased(MouseEvent m){}
}

【问题讨论】:

  • 你检查过浏览器的Java console吗?
  • 是的,但我仍然没有得到任何回应
  • 尝试将 addMouseListener 放入 start() 方法而不是 init()

标签: java event-handling applet mouseevent paintcomponent


【解决方案1】:

您的mouseClicked 函数使xy 超出范围。这样做:

public void mouseClicked(MouseEvent m)
{
     //int x = m.getX();
     //int y = m.getY();
     x = m.getX();
     y = m.getY();
     str="x:" + x + "y:" + y;
     repaint();
}

这将访问您的类的字段,而不是局部变量。

【讨论】:

  • 非常感谢,它成功了。我猜这是我的菜鸟错误
猜你喜欢
  • 2015-12-30
  • 1970-01-01
  • 1970-01-01
  • 2014-04-02
  • 1970-01-01
  • 2020-05-27
  • 2014-03-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多