2010-03-28 134 views
1

面板包含兩個標籤,這兩個標籤是通過在面板上單擊鼠標生成的。我想通過在它們之間畫一條線來連接這兩個標籤,可能是將鼠標指針從一個標籤拖到另一個標籤。如何在運行時添加標籤的面板中的兩個標籤之間繪製線條

這裏有兩個事件 - 一個是點擊面板生成標籤,第二個是連接這兩個標籤(鼠標按下,鼠標拖動和鼠標釋放事件)。這兩個事件都需要調用repaint()方法,但出於不同的目的。但是隻能有一個paint()方法。問題是當我連接這兩個標籤時,線條出現,但面板上的其他組件消失。

回答

3

這就是可能是由於您覆蓋面板paint()方法。代替 替代paintComponent()/paintComponents()。無論您使用的是油漆還是油漆組件,請不要忘記分別撥打super.paint()super.paintComponents()

2

您可以使用JLayeredPane而不是JPanel在彼此上方繪製多個對象。

您可以將原來的JPanel添加到JLayeredPane,然後再添加一個,使用更高的Z-index並將opaque屬性設置爲true。然後,最高面板可以很容易地重新繪製沒有其他較低的面板顯示奇怪的事情。

相關問題