2010-03-28 133 views
1

面板包含两个标签,这两个标签是通过在面板上单击鼠标生成的。我想通过在它们之间画一条线来连接这两个标签,可能是将鼠标指针从一个标签拖到另一个标签。如何在运行时添加标签的面板中的两个标签之间绘制线条

这里有两个事件 - 一个是点击面板生成标签,第二个是连接这两个标签(鼠标按下,鼠标拖动和鼠标释放事件)。这两个事件都需要调用repaint()方法,但出于不同的目的。但是只能有一个paint()方法。问题是当我连接这两个标签时,线条出现,但面板上的其他组件消失。

回答

3

这就是可能是由于您覆盖面板paint()方法。代替 替代paintComponent()/paintComponents()。无论您使用的是油漆还是油漆组件,请不要忘记分别拨打super.paint()super.paintComponents()

2

您可以使用JLayeredPane而不是JPanel在彼此上方绘制多个对象。

您可以将原来的JPanel添加到JLayeredPane,然后再添加一个,使用更高的Z-index并将opaque属性设置为true。然后,最高面板可以很容易地重新绘制没有其他较低的面板显示奇怪的事情。

相关问题