java外观:windows server 2012显示进度条太薄了

时间:2013-03-19 08:41:46

标签: java swing jframe look-and-feel

当我使用

时,我在** windows server 2012 **上获得了非常薄的进度条
 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

在Windows 7中,条形图看起来不错,在Windows Server 2012上非常薄 java版本每个地方(JDK和JRE)1.6.0_25,32位

enter image description here

以下是演示问题(或文档问题)的完整代码 我在jdk 1.6.0_25

package demos;

import javax.swing.*;
import javax.swing.plaf.metal.DefaultMetalTheme;
import javax.swing.plaf.metal.MetalLookAndFeel;
import java.awt.*;

public class ProgressBarLookAndFeelDemo {

    private void createAndShowGUI() {
    //Create and set up the window.
    JFrame frame = new JFrame("FrameDemo");
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    JPanel progPanel = new JPanel();
    progPanel.setLayout(new GridBagLayout());

    frame.getContentPane().add(progPanel, BorderLayout.CENTER);

    //
    JProgressBar progressBar = new JProgressBar();
    progressBar.setIndeterminate(true);
    progPanel.add(progressBar);

    //Display the window.
    frame.pack();
    frame.setVisible(true);
    }

    public  void showUI(String  name) throws ClassNotFoundException, UnsupportedLookAndFeelException, InstantiationException, IllegalAccessException {
    MetalLookAndFeel.setCurrentTheme(new DefaultMetalTheme());


    if ( name.equalsIgnoreCase("system")) {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    }

    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
        createAndShowGUI();
        }
    });
    }

    public static void main(String[] args) throws
        ClassNotFoundException, UnsupportedLookAndFeelException,
        InstantiationException, IllegalAccessException {


    if (args.length <1 ) {
        System.out.println("usage  : One argument is expected  none|system");
        throw  new IllegalArgumentException("java classname none|system");
    }

    new ProgressBarLookAndFeelDemo().showUI(args[0]);

    }
}

这可能是Windows 2012的行为,但我看不到任何与之相关的文档。

1 个答案:

答案 0 :(得分:2)

我希望32b和64b版本没有问题

JDK_1.6_022 32b

enter image description here

enter image description here

enter image description here

JDK_1.7_011 64b

enter image description here

enter image description here

enter image description here

来自代码

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.GridBagLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.WindowConstants;

public class ProgressBarLookAndFeelDemo {

    public ProgressBarLookAndFeelDemo() {
        JProgressBar progressBar = new JProgressBar();
        progressBar.setIndeterminate(true);

        JProgressBar progressBar1 = new JProgressBar();
        progressBar1.setValue(66);

        JPanel progPanel = new JPanel();
        progPanel.setLayout(new GridBagLayout());
        progPanel.add(progressBar);
        progPanel.add(progressBar1);

        JFrame frame = new JFrame("Frame Demo");
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.add(progPanel, BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
            for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
                System.out.println(info.getName());
                if ("Nimbus".equals(info.getName())) {
                    UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (UnsupportedLookAndFeelException e) {
            // handle exception
        } catch (ClassNotFoundException e) {
            // handle exception
        } catch (InstantiationException e) {
            // handle exception
        } catch (IllegalAccessException e) {
            // handle exception
        }/**/
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                new ProgressBarLookAndFeelDemo();
            }
        });
    }
}