我正在开发一个applet,用户可以在其中放置一些标记并使用鼠标在图像上绘制线条。
我放置线条和标记的空间是JPanel。我创建了标记为JComponents,行是简单的Line2D。
标记是透明的正方形,圆圈填充颜色。
我在JPanel上放了一些鼠标滑块,用于缩放和拖动图像。标记上也有鼠标滑块,对于路径,我将新的鼠标滑块添加到JPanel。当我必须绘制一条线时,我删除了标记的侦听器。
我在创建标记时没有问题。这些行只能从标记或其他行开始。当我尝试绘制一条线时,我点击一个标记并拖动鼠标。我可以在标记的透明部分看到这条线,如果我经过另一条线附近,我可以看到这条线也显示在这些线上......但两个标记之间的空间没有任何内容。
我不知道哪个是问题,我覆盖了JPanel的 paintComponent 方法,并使用了它的Graphics2D。
如果你需要一些自由的问题。
答案 0 :(得分:1)
好的,我通过随意测试找到了解决方案。
在JPanel的 paintComponent 中,绘制线条后,我错过了这两个命令:
this.revalidate();
this.repaint();
现在一切正常。