2010-05-02 7 views
8

La perilla en el JSlider vertical en mi máquina con Windows 7 (con apariencia nativa) es realmente muy pequeña en ambas direcciones. No solo flaco sino también corto. alt text http://img101.imageshack.us/img101/8946/verticalsliderproblemwi.jpgError de representación de Java Swing en Windows 7 look-and-feel?

¿Alguien puede confirmar esto? ¿Debería reportarlo? ¿Si es así, donde? ¡Gracias!

Aquí está el código para el programa de ejemplo (en la captura de pantalla):

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

No estoy seguro si es un error, pero veo lo mismo. – foxwoods

+0

Creo que vale la pena hacer visible para Sun, er, Oracle; P Creo que publicaré algo en bugs.sun.com (¿creo que ese es el lugar a donde ir?). – Vimes

+0

Parece normal en Mac OS X 10.5.8 Java 1.6 para todos los L & F instalados. ¿Es esto un artefacto de 'FlowLayout', el valor predeterminado para' JPanel'? – trashgod

Respuesta

4

En primer lugar, esto sucede en Windows Vista también. Parece ser el caso, que el control deslizante intenta tomar el menor espacio posible. Si desea un mayor JSlider, use JSlider.setPaintTicks. Por lo tanto, debe agregar lo siguiente:

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

Eso debería hacer el truco.

Cuestiones relacionadas