有没有优化的方法,能象win32写的程序一样快?
是不是要把菜单提前载入内存?

解决方案 »

  1.   

    swing的默认感观是跨平台的,当然不如直接调用windows的来的快,可以尝试以下方法
    UIManager.setLookAndFeel((LookAndFeel) Class.forName("com.sun.java.swing.plaf.windows.WindowsLookAndFeel").newInstance());
      

  2.   

    有什么理由证明,多了jvm一道手,就应该会有延迟呢?
      

  3.   

    to ruader() 
    道理就像你吃一个馒头, 总要先吃掉一点皮(皮没有办法不吃, 掰开不算, 因为JVM是没有办法掰开的)才能吃到肉. 而别人直接买块红烧肉吃.....
      

  4.   

    经过jvm !=  速度慢 !!!java的服务器端应用,你觉得慢吗?建立在weblogic,websphere ,jboss ,tomcat 上的应用会慢吗?
      

  5.   

    to bradwoo8621() :  你这是想当然了!
      

  6.   

    反而jvm会在运行时动态优化代码,速度能更快。
    c应用只能在编译时优化,不能在运行时优化。
      

  7.   

    有没有优化的方法,能象win32写的程序一样快?
    是不是要把菜单提前载入内存?
     只要还用JAVA就没法优化了,win32和JAVA 就是WINDOWS的亲儿子和干儿子,没办法,谁叫咱是后妈养的呢 -.-
      

  8.   

    lixiaoxue85(蛮野蛮) ( ) 信誉:97    Blog   加为好友  2007-04-18 23:30:59  得分: 0  
     
     
       有没有优化的方法,能象win32写的程序一样快?
    是不是要把菜单提前载入内存?
     只要还用JAVA就没法优化了,win32和JAVA 就是WINDOWS的亲儿子和干儿子,没办法,谁叫咱是后妈养的呢 -.-
      
     
    ------------------------
      

  9.   

    你不会还是MMX系列的computer吧
      

  10.   

    什么嘛,明显是自己的程序设计有问题,我从来没碰到过菜单还卡的问题,即使是用在很差的电脑上!jvm现在的效率已经很好了.
      

  11.   

    其实也不卡,就是反应速度没有win32的快
      

  12.   

    有可能是因为Swing的双Buffer机制吧,如果是第一次弹出,会慢一些,因为要往内存里面load东西,第二次打开就会快一些,因为已经有一部分东西被握在内存里面,不需要再从新load
      

  13.   

    比较明显的例子就是JFileChooser,第二次打开明显的比第一次快
      

  14.   

    swing基于awt,其组件界面是画出来的,所以叫轻量级;awt组件与windows组件是一一对应的,所以叫对等客户端。awt与windows组件的速度差不多,swing就比不上了。
      

  15.   

    JComboBox的弹出菜单慢吗?
    我没看出来
      

  16.   

    Class是预编译的, JVM是解释后的运行. 这就是多一道手吧. 1.6的Swing速度有一些提高了(SUN自己说很大提高了). 运行态动态优化我觉得只是说说而已, 不然你看SWT和SWING比较, SWT就是本地的, 他的标准组件都是和本地组件一一对应的. 速度快很多.
    并且Swing的机制决定他关联的内容比较多, 比如JTable, 你需要JTableHeader, TableColumn, TableModel, CellRenderer, CellEditor, JScrollPane, JTable等等之类, 速度慢很正常, 这个时候需要考验的是程序员的功力吧.
    你说的Server端应用不慢我想可能是因为你感觉不到. 实际上Server端引用一般都是要求响应时间的, 你不能说一个请求到server端200ms还没有处理完,(当然也有很耗时间的处理, 这个可能会通过异步方式来做吧),实际上你可以打开服务器的热装载功能试试看, 速度会慢很多的. 我觉得Java在服务器端的强大功能并不是由于他的性能, 而是现在没有更好的其他语言的架构来支持通常的开发应用.
    另外Swing和Server的差别在于Server你是不需要和本地打交道的, 比如LDAP, JDBC等等, 都是以服务的形式来提供, 而Swing很明显是JVM解释运行, 最终落到native的图形方法上
      

  17.   

    Swing的组件是用Java2D画出来的!当然比较慢.
    而且java的解释执行,比C++慢15倍
    WEB服务器上java当然是最快的,因为asp,php都是完全解释执行的,而java会经过一次编译,然后再解释执行编译后的字节文件.速度比asp,php快多了!而且servlet在执行时,如果遇到新用户请求,服务器只分配它的一个线程,而asp,php还要重新载入一个新的页面到内存,然后再解释.明显又要慢很多.