2009-09-27 3 views
0

안녕하세요, 저는 리눅스 플랫폼에서 자바로 슬라이더를 만들었습니다. 그러나 슬라이더는 다른 운영 체제에서 다른 모양과 느낌을주었습니다. 그것을 의미하는 리눅스에서 조금 좋아 보이지만 맥 운영 체제에서 슬라이더가 달라 보입니다. 그래서 어떻게 같은 느낌을주기에 상관없이 코드는 아래와 같습니다 운영 체제자바의 내 슬라이더가 모든 플랫폼에서 동일한 모양과 느낌을 제공하지 않습니다.

내 슬라이더 느낌.

import javax.swing.JFrame; import javax.swing.JSlider; import javax.swing.Timer; 

public class Test { 

static int percent = 0; 

public static void main(String[] args) { 
    JFrame f = new JFrame(); 
    final JSlider s = new JSlider(); 
    f.getContentPane().add(s); 
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    f.pack(); 
    f.setVisible(true); 
    Timer time = new Timer(100, new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent e) { 
        percent++; 
        if (percent>100) 
          percent = 0; 

// s.setMajorTickSpacing(10); //s.setMinorTickSpacing(1); //s.setPaintTicks(true); //s.setPaintLabels(true); 

// JScrollBar sb = s.getHorizontalScrollBar(); s.setValue((int)(s.getMaximum()*(percent/100.0))); s.setAutoscrolls(true); } }); time.start(); } 

} 

감사 선일 쿠마 Sahoo

+0

글쎄, 다른 모양과 느낌의 포인트는 다르게 보입니다. 그러나 후광 또는 금속을 체크 아웃, 그들은 모든 플랫폼 – clamp

+0

(당신은 메인 스레드를 포함한 AWT 이벤트 발송 쓰레드 (EDT) 이외의 스레드에서 스윙을 사용하지 않아야합니다, 참고에 거의 같은보고되어있다.의 코드를 감싸 표준적인 범례 :'java.awt.EventQueue.invokeLater (new Runnbale() {public void run() {...}});'. –

답변

4
당신은

UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); 

또는 UIManager.getInstalledLookAndFeels()에 의해 정의 된 다른 값을 사용하여 스윙 구성 요소의 모양과 느낌을 변경할 수 있습니다

;

관련 문제