使用了JFileChooser并设置了Windows外观。chooser = new JFileChooser();
try {
    UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

catch (Exception e) {
    e.printStackTrace();
}
SwingUtilities.updateComponentTreeUI(chooser);现在是这样:
而Windows标准的文件打开对话框,以eclipse为例:
明显是不一样的。如何达到后者的效果?JavaGUI

解决方案 »

  1.   

    这个肯定是不能直接实现的,Swing的界面风格是用JAVA实现的,和Windows的不一样。所以才能跨平台。如果你的程序只在Windows上用,可以看看JNI相关的内容,调用Windows的API实现。
      

  2.   


    但是,Eclipse自己不是也用Java开发的吗?它如何实现的这个对话框呢?
      

  3.   

    确切的说是调用系统的API实现的,Eclipse是用JAVA开发的,但是调用了系统的API。所以Eclipse不是跨平台的。
    在Eclipse的下载站点上可以看到,是对Windows、Linux、Mac OS等不同系统提供了不同的下载。
      

  4.   


    谢谢回答~如果要学习如何调用系统的API,需要从哪里下手,以及除Java之外需要哪些知识?
      

  5.   

    可以学习一下JNI相关的知识,这个主要是JAVA调用DLL动态库的相关知识。
    百度百科上关于JNI的介绍:http://baike.baidu.com/view/1272329.htm?wtp=tt有个JInvoke的库可以简化JNI的调用,不过现在官网打不开了。
    这是个ITeye上的文章,可以参考一下:
    http://xieruilin.iteye.com/blog/730926另外还需要学习一下系统的API了,可以看看WindowsSDK啥的,最好对C/C++也了解一下。
      

  6.   

    eclipse是使用swt的,你也可以使用swt