2009-12-05 69 views
1

我很抱歉發佈很多問題到最近。更新JSlider Swing的位置

我想讓JSlider根據不斷更新的變量更新它的位置。

setValue(n)方法似乎不起作用。有其他選擇嗎?我們將此用作音樂播放器的時間標記。

回答

2

假設您已經正確配置了最小值和最大值,setValue()將起作用。 JSlider確實需要重繪的機會,所以請確保您沒有綁定event dispatch thread。如果您的代碼正在響應任何UI事件,則您將處於調度線程中,並應儘快返回。

在後臺線程上執行任何昂貴的計算。在網上有很多這樣的excellent tutorials

0

setValue方法肯定會起作用,所以我會檢查您傳遞給setValue的值是否確實在您配置滑塊的最小值和最大值之內(即檢查您是不是傳遞一個百分比值而不是一個整數)。

要注意的第二件事:您應該只在事件分派線程上調用setValue。當然,你可以在偶數調度線程之外計算將要傳遞給setValue的值,但是任何對Swing組件中值的更新都應該在偶數調度線程中完成(即使用SwingUtilities.invokeLater