【发布时间】:2014-08-14 00:39:15
【问题描述】:
所以我定义了一个 mouseEventlistener 和 mousemotionListener 来定义点。
protected Point elementPosition = null;
public Point endPoint = null;
public Axis tempAxis;
public Graphics g;
class MouseButtonHandler extends MouseAdapter
{
public void mousePressed(MouseEvent e)
{
if(e.getModifiers()==InputEvent.BUTTON1_MASK)
{
elementPosition =new Point(e.getX(), e.getY()) ;
if(addType==YLABEL)
{
YDialog ydia = new YDialog(anApp);
ydia.setVisible(true);
value =(double) ydia.getValue();
ydia.dispose();
}
}
}
public void mouseReleased(MouseEvent e)
{
}
}
class MouseMoveHandler extends MouseMotionAdapter
{
public void MouseMoved(MouseEvent e)
{
Point currentCursor = e.getPoint();
}
public void mouseDragged(MouseEvent e)
{
endPoint = new Point(e.getX(), e.getY());
tempAxis = new Axis(elementPosition, endPoint);
tempAxis.draw(g);
}
}
其中轴类是这样定义的。
import java.awt.*;
import java.awt.event.*;
public class Axis extends Object
{
public Point position;
public Point endPoint;
public Axis(Point position, Point endPoint)
{
this.position = position;
this.endPoint = endPoint;
}
public void draw(Graphics g)
{
g.setColor(Color.red);
g.drawLine(position.x, position.y, endPoint.x, endPoint.y);
}
}
这些都在视图类中实现。弹出,按计划显示菜单和所有内容,但鼠标拖动时不绘制轴。具体来说,它说有问题 tempAxis.draw(g);。有谁知道为什么会发生此错误。顺便说一句,我还是 Java 新手。
【问题讨论】:
-
只是一个建议:如果您格式化您的代码,我们和您可能会更容易阅读。
-
g从未初始化 -
这是否意味着我需要与 mouseevent 和 mousemovelistener 在同一类中的 draw(Graphics g) 方法?
-
没关系,它与另一个具有空指针异常的变量有关,但没有被报告为这样。谢谢。
标签: java graphics awt draw mousemove