2012-01-27 35 views
3

我最近開始使用swing後多年使用C#,我想知道:在swing中,是否有相應的方法Control.ResumeLayout/SuspendLayout?對應的擺動方法C#Control.SuspendLayout/ResumeLayout

我在問我是否正在嘗試修復我公司正在使用的舊UI,並且我想在完成所有邏輯工作後暫停所有繪圖,同時對組件(特別是JTable)執行操作那麼我是否想要控件(或者在這種情況下是JComponents)來繪製自己。

組件包含在JFrame中。不幸的是,在這個階段重構代碼並不是一個真正的選擇,所以任何幫助都會非常非常受歡迎。

感謝

+0

'SuspendLayout'和'ResumeLayout'不會掛起並繼續以.NET繪圖 – 2012-01-27 16:26:47

+0

SuspendLayout掛起佈局邏輯,直到調用ResumeLayout爲止。因此,當繪圖通常因爲例如啓用設置爲false而發生時,不會發生。所以基本上它暫停繪圖,但我認爲它的使用情況說土豆我說土豆 – jonatzin 2012-02-01 10:46:09

+0

不;它根本不會暫停繪圖。它會*暫停佈局事件,這可能會導致繪圖發生*不太頻繁*,但它完全沒有什麼可以暫停繪圖。 – 2012-02-01 13:19:48

回答

4

如果你的eventdispatch線程(長時間操作不是因爲它會鎖定您的GUI是個好主意),這將阻止重新繪製上工作。我不明白爲什麼你會想要這個,當你可以讓新的JTable在新的JTable被填充的時候。一旦創建了JTable,就會將它添加到事件調度線程中,這會導致重繪。

+0

嗯,我必須在現有的JTable上工作,就像我說重構目前不是一種選擇。但我找到了一種方法來做到這一點。我在一個單獨的線程上完成這個工作並調用SwingUtilities。 invokeLater的 – jonatzin 2012-02-01 10:47:28