如题,
我总感觉JAVA GUI的默认界面实在太丑了,
如果像WINDOWS那样的界面该有多好啊不知道JAVA GUI里面可不可以在程序里面设定它的初始界面和当前操作系统一样呢??
还是只能通过重新控件来改界面????不知道大家有什么看法不过我倒是看到过网上一些用JAVA写的算号器之类的,它的初始界面就是和WINDOWS界面一样的,不知是怎样弄出来的,各位来发表一下高见吧~~~

解决方案 »

  1.   

    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());不过我倒觉得Java的metal风格一点都不丑,特别是JDK1.5以上版本比Windows经典风格好看多了。
      

  2.   

    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());谢谢,请问这句话是放在哪里写,是放在如JFrame的构造方法里面吧??
      

  3.   

    使用SWT,他是全部使用本地的dll或者so来实现UI的
      

  4.   

    还想问一个问题,MyEclipse里面是不是自带了有 JsEclipse啊(一个跟MyEclipse不同的插件,用来编写JavaScript)???
      

  5.   

    不行啊,
    我在JFrame的构造方法的最后加上下面一句
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());显示的效果没有有什么区别啊,还是JAVA以前的样子,并没有转到我要的WINDOWS的样式,怎么回事????
      

  6.   

    推荐使用jdoodies looks风格包。PlasticXPLookAndFeel.setMyCurrentTheme(new DesertBluerZh());
    String lafName = LookUtils.IS_LAF_WINDOWS_XP_ENABLED ? "com.jgoodies.looks.windows.WindowsLookAndFeel": "com.jgoodies.looks.plastic.PlasticXPLookAndFeel";
    UIManager.setLookAndFeel(lafName);
    如果是要用windowvs风格,直接使用
    String lafName =  "com.jgoodies.looks.windows.WindowsLookAndFeel";
    UIManager.setLookAndFeel(lafName);
      

  7.   

    不行啊,
    我在JFrame的构造方法的最后加上下面一句
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());显示的效果没有有什么区别啊,还是JAVA以前的样子,并没有转到我要的WINDOWS的样式,怎么回事????
      

  8.   

    使用eclipse的swt,加上ve插件,可以兼容所有主流的操作系统
    不用手工搭建界面了,很容易上手,推荐!
      

  9.   

    其实WINDOW界面没有JAVA界面好看,只不过大家看馆了罢了, JAVA有自适应操作系统界面的功能,楼主可以查阅相关资料
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
      

  10.   

    有问题。在main方法中的开始时候配置。
    在frame实例化前。to ASPserver
    java界面切实是不好看...........包括java自带的window风格也有问题。
    1.5的默认界面实在不敢恭维。
    ==============================================================================
     回复人: randb(从大二下学期开始不再迷茫!!狂学编程!!) ( ) 信誉:100  2005-11-29 22:36:00  得分: 0  
     
     
       不行啊,
    我在JFrame的构造方法的最后加上下面一句
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());显示的效果没有有什么区别啊,还是JAVA以前的样子,并没有转到我要的WINDOWS的样式,怎么回事????
      
     
      

  11.   

    boolean packFrame = false;
        /**
         * Construct and show the application.
         */
        public RunTest() {
    // 要显示的Frame
            DataAllFrame frame = new DataAllFrame();
            
            if (packFrame) {
                frame.pack();
            } else {
                frame.validate();
            }
            frame.setSize(new Dimension(640, 480));
            frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
            // 居中
            Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
            Dimension frameSize = frame.getSize();
            if (frameSize.height > screenSize.height) {
                frameSize.height = screenSize.height;
            }
            if (frameSize.width > screenSize.width) {
                frameSize.width = screenSize.width;
            }
            frame.setLocation((screenSize.width - frameSize.width) / 2,
                              (screenSize.height - frameSize.height) / 2);        frame.setVisible(true);
        }    public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    try {
                        UIManager.setLookAndFeel(UIManager.
                                                 getSystemLookAndFeelClassName());
                    } catch (Exception exception) {
                        exception.printStackTrace();
                    }                new RunTest();
                }
            });
        }
    }
      

  12.   

    还是全部贴出来,居然不能修改(还是没找到),汗~~~~~
    import java.awt.Toolkit;
    import javax.swing.SwingUtilities;
    import javax.swing.UIManager;
    import java.awt.Dimension;
    import com.borland.dx.dataset.TableDataSet;
    import com.borland.dx.dataset.TextDataFile;public class RunTest {
    boolean packFrame = false;
        /**
         * Construct and show the application.
         */
        public RunTest() {
    // 要显示的Frame
            DataAllFrame frame = new DataAllFrame();
            
            if (packFrame) {
                frame.pack();
            } else {
                frame.validate();
            }
            frame.setSize(new Dimension(640, 480));
            frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
            // 居中
            Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
            Dimension frameSize = frame.getSize();
            if (frameSize.height > screenSize.height) {
                frameSize.height = screenSize.height;
            }
            if (frameSize.width > screenSize.width) {
                frameSize.width = screenSize.width;
            }
            frame.setLocation((screenSize.width - frameSize.width) / 2,
                              (screenSize.height - frameSize.height) / 2);        frame.setVisible(true);
        }    public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    try {
                        UIManager.setLookAndFeel(UIManager.
                                                 getSystemLookAndFeelClassName());
                    } catch (Exception exception) {
                        exception.printStackTrace();
                    }                new RunTest();
                }
            });
        }
    }