2010-05-02 19 views
8

Windows 7 makinemdeki dikey JSlider üzerindeki düğme (doğal görünüm ve his ile) her iki yönde gerçekten çok küçük. Sadece sıska değil, aynı zamanda kısa. alt text http://img101.imageshack.us/img101/8946/verticalsliderproblemwi.jpgJava Swing oluşturma hatası Windows 7'de nasıl görünüyor?

Bunu herkes doğrulayabilir mi? Bunu rapor etmeli miyim? Öyleyse nerede? Teşekkürler!

import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JSlider; 
import javax.swing.SwingConstants; 
import javax.swing.UIManager; 


public class SliderTest 
{ 
    public static void main(String[] args) 
    { 
     // Set the look and feel to that of the system 
     try 
     { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } 
     catch (Exception e) 
     { System.err.println(e); } 


     // Launch the GUI from the event dispatch thread 
     javax.swing.SwingUtilities.invokeLater(new Runnable() 
     { 
      public void run() 
      { 
       JFrame window = new JFrame(); 
       window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

       JPanel contentPane = new JPanel(); 
       contentPane.add(new JSlider(SwingConstants.HORIZONTAL)); 
       contentPane.add(new JSlider(SwingConstants.VERTICAL)); 

       window.setContentPane(contentPane); 
       window.pack(); 
       window.setLocationRelativeTo(null); // Center window 
       window.setVisible(true); 
      } 
     }); 
    } 
} 
+0

Hata olup olmadığından emin değilim, ancak aynı şeyi görüyorum. – foxwoods

+0

Bence Sun, er, Oracle'a görünür hale gelmeye değer, sanırım bugs.sun.com'da bir şey göndereceğim (sanırım gidecek yer burası mı?). – Vimes

+0

Yüklü tüm L & F'ler için Mac OS X 10.5.8 Java 1.6'da normal görünüyor. Bu "FlowLayout", "JPanel" için varsayılan bir eser mi? – trashgod

cevap

4

Öncelikle, bu da Windows Vista'da olur: Burada

(ekran görüntüsünde) örnek program için kodudur. Durum böyle görünüyor, kaydırıcı mümkün olduğunca az yer almaya çalışıyor. Daha büyük bir JSlider istiyorsanız, JSlider.setPaintTicks kullanın. Yani şu eklemek zorunda: hile yapmak gerekir

JSlider vertical = new JSlider(SwingConstants.VERTICAL); 
vertical.setPaintTicks(true); 
contentPane.add(vertical); 

.