当我使用
时,我在** windows server 2012 **上获得了非常薄的进度条 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
在Windows 7中,条形图看起来不错,在Windows Server 2012上非常薄 java版本每个地方(JDK和JRE)1.6.0_25,32位
以下是演示问题(或文档问题)的完整代码 我在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的行为,但我看不到任何与之相关的文档。
答案 0 :(得分:2)
我希望32b和64b版本没有问题
JDK_1.6_022 32b
JDK_1.7_011 64b
来自代码
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();
}
});
}
}