2014-02-21 65 views
0

我遇到了一個很大的問題。我寫一個GUI具有以下結構:循環重繪問題

大型機(mainPanel中(JScrollPane中(的ContentPanel(內容1,內容2,Content3))))

還有一個玻璃面板在大型機上。 GlassPane類中有一個定時器,每隔100ms就有一個定時器。

此計時器正在更新Content1的JSlider的值。 JSlider還有一個更改偵聽器,它將當前拇指的X座標提供給GlassPane。如果它發生變化,這些座標用於在每個時間點繪製一條線。該行遍歷Content1,Content2和Content3。

我目前正在嘗試通過this.repaint(),MainPanel.repaint(),this.repaint(Rectangle),MainPanel.repaint(Rectangle)更新這些內容。

不幸的是,所有這些方法(甚至重繪(Rectangle)o0)都調用Content1,Content2和Content3的paintComponent方法,以某種方式創建循環重繪。我無法解釋這個週期,我已經非常絕望了。我會非常感謝任何幫助或建議。

我真的很想給你一些代碼,但它太多了。我真的不知道什麼是有用的。

映入眼簾, 玉米

+0

nvm,明白了。針對有類似問題的人的小提示http://www.scs.ryerson.ca/~mes/courses/cps530/programs/threads/Repaint/index.html TL; DR不經常主動給予足夠的時間調用repaint()重新繪製 – Corn

回答

1

這足以在JFrame中做this.repaint(),它重新繪製是在JFrame的所有對象(組件)。