Windows 7外观下Java Swing渲染错误?

8

我在 Windows 7 上使用本机外观,发现垂直 JSlider 上的旋钮非常非常小,不仅细而且短。alt text

有人可以证实这一点吗?我应该报告它吗?如果是,请问在哪里报告?谢谢!

以下是示例程序的代码(如屏幕截图所示):

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 );
            }
        });
    }
}

不确定是否是一个 bug,但我看到了同样的东西。 - foxwoods
我认为这值得让Sun(现在是Oracle)看到;P 我想我会在bugs.sun.com上发布一些东西(我想那是去的地方?)。 - Vimes
在Mac OS X 10.5.8上,所有已安装的L&F都使用Java 1.6看起来很正常。这是“FlowLayout”的副产品吗?它是“JPanel”的默认设置吗? - trashgod
我尝试了一些使用BoxLayout和BorderLayout的变化,问题在所有情况下都出现了。看起来是组件的UI在Windows 7外观下的问题。 - Vimes
@JohnB 你在 bugs.sun.com 上提交了什么吗?Bug ID 是什么? - Christopher Bruns
Christopher,我想我从来没有做过(我认为在这里等待答案并忘记了)。我已经很久没有进行Java开发了,所以如果你想继续提交错误报告,请随意使用上面的代码/图形,如果它们仍适用于最新版本。 - Vimes
1个回答

4

首先,这个问题也会在Windows Vista中出现。看起来滑块试图占用尽可能少的空间。如果你想要一个更大的JSlider,可以使用JSlider.setPaintTicks。所以你需要添加以下内容:

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

那应该就能解决问题了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接