项目中有一个servlet中创建了一个JFrame
当用Tomcat6w.exe启动时JFrame显示不出来
当用Tomcat6.exe以及在MyEclipse下运行都能正常显示出来
是什么原因啊?

解决方案 »

  1.   

    估计你还不清楚为什么会有J2SE J2EE J2ME这些东西
      

  2.   

    JFrame 是J2SE的..servlet 和 tomcat是J2EE的..一个开发C/S,一个开发B/SJFrame你可以放到JB里面运行!!在web里面JSP,HTML,PHP可以作为页面显示,而不是JFrame!!
      

  3.   

    你想将桌面程序发到网页上去运行有种机制就是用applet来加载,那就能够在网页中潜入你想要的JFrameJ2SE,J2EE,J2ME是针对不同的应用场景,sun公司就对JAVA的一个分类,J2SE就是所谓的基础,能够开发桌面程序,J2EE就是企业级的开发,J2ME就是嵌入式的开发你想将桌面程序运行在web当中是不行的
      

  4.   

    问题补充
    JFrame不是要在页面中显示只是在doGet方法中有如下代码JFrame frame = new JFrame();
    frame.getContentPane().add(new JPanel());
    frame.setVisible(true);就三行代码,希望在执行doGet方法的时候能在服务器上打开一个窗口。
      

  5.   

    frame.setVisible(true);
    设置可见 ,另外需要设置大小 位置
    setSize(width,height);
    setLocation(x,y);
      

  6.   

    你写的web应用是给一个人看的?我想,您应该知道tomcat.exe这个进程是运行在服务器上的,由它产生的任何JFrame,都只会显示在服务器的屏幕上(如果有的话),而不会出现在客户这里。你的明白?如果真如您所说“希望在执行doGet方法的时候能在服务器上打开一个窗口”,那么转入正题。tomcatw.exe?
    这个应该不是启动tomcat的命令,而是配置windows service的GUI界面。lz是不是说当myeclipse下或者直接运行tomcat.exe/startup.bat的时候,JFrame显示,而以windows服务的方式不行?这是因为windows服务执行的时候,默认用户(windows用户)是"本地系统",而不是你登录的administrator/user/xxx账户,它们对应的桌面也无关。解决方案:在windows服务中(services.msc),选择tomcat服务,选择登录标签,选择自定义账户,输入您的用户名密码。重新启动
      

  7.   

    终于有人说到点子上去了,感谢解答!
    顺便说一下我为什么要这样做,项目中有一个制图的模块,就是把一些已有的图片进行组合成一张新图片(就好像是QQ秀穿衣服一样),然后把组合好图片保存为一张新的图片。于是想到了利用内置浏览器来截图,但是JWebBrowser必须放到JFrame中来显示,所以用户每有一个保存图片的请求时就在服务器端打开一个JWebBrowser来截图,之后关闭。
    截图过程对用户来说是不可见的。郁闷的是服务器端要以windows服务方式开启Tomcat,一直找不到说服他们的理由。
      

  8.   

    你的实现方式不好,建议使用ImageMagick,这是个C程序,有对应的Jmagick API来实现你的方式。
      

  9.   


    试了一下,Jmagick在确很强大,可惜有两个问题不好处理,文字水印竖排和加边框竖排本来想一次印一个字,调整每个字的位置来达到效果,效果不太理想