我一直在使用JSlider類有一些問題 - 特別是與刻度標籤。這是JSlider中的錯誤嗎?
我第一次使用setMajorTickSpacing
和setMinorTickSpacing
一切都按預期工作。但是,後續調用setMajorTickSpacing
會更新刻度,但不更改標籤。我寫了一個簡單的例子來說明這種情況:
import java.awt.event.*;
import javax.swing.*;
public class SliderTest {
public static void main(String args[]) {
JFrame frame = new JFrame();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
});
frame.setSize(300, 250);
JSlider slider = new JSlider(0, 100, 0);
slider.setMajorTickSpacing(10);
slider.setMinorTickSpacing(1);
slider.setPaintLabels(true);
slider.setPaintTicks(true);
slider.setMajorTickSpacing(25);
slider.setMinorTickSpacing(5);
frame.add(slider);
frame.pack();
frame.setVisible(true);
}
}
兩個簡單的變通似乎來解決這個問題 - 無論是第二次調用setMajorTickSpacing
之前使用slider.setLabelTable(null)
或slider.setLabelTable(slider.createStandardLabels(25))
。鑑於此,標籤表似乎沒有被正確更新。
我不確定這是否是預期的行爲。我的第一本能是更新滴答間隔也應更新標籤,但也有分離兩者的論據。
所以我想知道它是什麼 - 這是JSlider
中的錯誤還是預期的行爲?如果它是是的預期行爲,那麼做出該選擇的突出理由是什麼?
對我來說看起來像一個錯誤 - 好趕上:-) – kleopatra
感謝您分享這個短暫的未來。 –