문제

최소 0과 최대 10,000의 jslider가 있습니다. 나는 1,000으로 설정된 주요 진드기 마크가 있습니다. 내가 레이블을 페인트한다면 지금 그들은 0, 1000, 2000, 3000, 4000 등으로 나타납니다. 내가 보여주고 싶은 것은 0, 1, 2, 3, 4, 5 등입니다. 이 작업을 수행하는 좋은 방법이 되겠습니까?

도움이 되었습니까?

해결책

사용 jslider.setLabeltable (사전)

편집하다

또는 사전 정의 된 레이블 UI에 의존하고 레이블 텍스트를 변경할 수 있습니다.

    Enumeration e = jSlider.getLabelTable().keys();

    while (e.hasMoreElements()) {
        Integer i = (Integer) e.nextElement();
        JLabel label = (JLabel) jSlider.getLabelTable().get(i);
        label.setText(String.valueOf(i / 1000));          
    }

다른 팁

당신은 사용할 수 있습니다 JSlider.setLabelTable(Dictionary) 다르게 렌더링하려는 값에 대한 특정 레이블을 설정하려면; 예를 들어

JSlider slider = ...

Dictionary dict = new Hashtable();
for (int i=0; i<=10000; i += 1000) {  
  dict.put(i, new JLabel(Integer.toString(i / 1000)));
}

slider.setLabelTable(dict);

(이전 의견을 기반으로 편집.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top