【发布时间】:2014-11-15 21:11:33
【问题描述】:
我正在尝试在 Eclipse 上做一个小程序。程序是这样的:当我第一次点击框架上的面板时,必须绘制一条关于我的鼠标监听器的 Y 位置的线。这条线占据了面板的所有宽度。在第二次单击时,必须绘制另一条线,再次关于我单击位置的 Y 位置。之后,我会在两条线之间画一个小圆圈,并用它制作一个小动画。 但是现在,我有一个问题。当我点击面板时,会画一条线,但如果我再次点击,第一行会消失,第二行会出现...... 这是 painComponent 和我的 mousr 监听器的代码。它有什么问题?
public Lines() {
addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
posY=e.getY();
posX=e.getX();
nbClic=e.getClickCount();
repaint();
}
});
setBackground(Color.black);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.blue);
if(nbClic>=1){
line1=new Line2D.Double(0, posY, getWidth(), posY);
g2d.draw(line1);
repaint();
}
if(nbClic>=2){
g2d.setColor(Color.YELLOW);
line2=new Line2D.Double(0, posY, getWidth(), posY);
g2d.draw(line2);
}
repaint();
}
【问题讨论】: