eclipse麻烦帮我看看,感谢! 就是我定义的类MyPanel中paint函数下if语句怎么才能进去,新手求解惑!

importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjava.awt.Grap... import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.util.ArrayList;
import java.awt.Point;

class Mouse extends MouseAdapter
{
protected ArrayList<Point> points=new ArrayList<Point>();
protected int endX=0,endY=0;
public void mouseClicked(MouseEvent e)
{
if(e.getClickCount()==1)
points.add(new Point(e.getX(),e.getY()));
else if(e.getClickCount()==2)
{
endX=e.getX();
endY=e.getY();
}
}
}

class MyPanel extends JPanel
{
private Mouse mouse=new Mouse();
public MyPanel()
{
this.addMouseListener(mouse);
}
public void paint(Graphics g)
{
Graphics2D gg=(Graphics2D)g;
if(mouse.points.size()>0)
{
for(int i=0;i<mouse.points.size()-1;i++)
gg.drawLine(mouse.points.get(i).x, mouse.points.get(i).y, mouse.points.get(i+1).x, mouse.points.get(i+1).y);
gg.drawLine(mouse.endX,mouse.endY,mouse.points.get(0).x, mouse.points.get(0).y);
}
}
}

public class Paint extends JFrame{
private MyPanel mpl=new MyPanel();
public Paint()
{
this.add(mpl);
this.setSize(400,400);
this.setVisible(true);
}
public static void main(String[] args) throws Exception
{
new Paint();
}
}
可能点了什么问题关闭了 。。。
求帮忙。。。
展开
 我来答
308xiaobao
高粉答主

2016-10-08 · 每个回答都超有意思的
知道大有可为答主
回答量:2.6万
采纳率:95%
帮助的人:2776万
展开全部
MyPanel 在new的时候父类JPanel 构造函数调用了paint,而你的mouseClicked还没执行,points.size()=0
更多追问追答
追问
所以该怎么做才能触发那个鼠标事件,我知道原因不会解决啊。。。
追答
鼠标事件你是点击一下那个空面板就促发了呀,你在里面System.out.print(),打印输出就知道了鼠标点击事件有调用,但是paint在鼠标事件之前就调用了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式