当前位置: 代码迷 >> J2SE >> 怎么在事件监听器类中调用swing中的画图函数?graphcis g为什么传不进去
  详细解决方案

怎么在事件监听器类中调用swing中的画图函数?graphcis g为什么传不进去

热度:47   发布时间:2016-04-23 20:03:41.0
如何在事件监听器类中调用swing中的画图函数?graphcis g为什么传不进去?
public class huayuan extends JFrame implements MouseListener
{
public static void main(String  [] args)
{
huayuan yuan2=new huayuan();

}
public huayuan ()
{
this.setSize(400,400);
this.setVisible(true);
this.addMouseListener(this);
}
public void firststep(Graphics g)
{
super.paint(g);
g.drawLine(0, 200, 400, 200);
g.drawLine(200, 0, 200, 400);
g.drawOval(140, 140, 120, 120);
}
public void mouseClicked(MouseEvent arg0)
{
int a=arg0.MOUSE_CLICKED;
System.out.println(a);
if(a!=0)
{
}
}
public void mouseEntered(MouseEvent arg0)
{}
public void mouseExited(MouseEvent arg0)
{}
public void mousePressed(MouseEvent arg0)
{}
public void mouseReleased(MouseEvent arg0)
{}
}


我想在mouseclicked里面的if函数里,调用firststep函数,让他把图画出来,但是graphics g传不进去。应该怎么写?
------解决思路----------------------
有此想法绝对错误,估计你还是学生!
Graphic/Graphic2D作为JAVA中图形设备上下文对象,其获取方式只能通过
重载paint/paintComponent等绘制方法获取,或者通过BufferedImage对象获得
你可以通过repaint来刷新显示,然后在paint/paintCompoent中加上你想要绘制的内容即可
在鼠标事件中调用repaint即可,