2011-06-04 79 views
0

我很好奇Web应用程序中swing的性质。目前我正在使用使用检票的网络应用程序。我做了一个小测试。我已经添加了一个链接,并写下如下代码:Web应用程序中SwingUtilities.invokeLater

add(new Link<String>("link", new Model("link")) { 

    @Override 
    public void onClick() { 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       JFrame frame = new JFrame("Test"); 
       frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
       frame.setBounds(100, 100, 450, 300); 
       JPanel contentPane = new JPanel(); 
       contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 
       contentPane.setLayout(new BorderLayout(0, 0)); 
       frame.setContentPane(contentPane);       
       frame.setVisible(true); 
      } 
     }); 
     } 
    } 

}); 

而当我部署到服务器的战争。点击链接时,会看到一个UI,点击关闭按钮时会关闭。我想知道何时从客户端机器点击链接,这个摆动组件将显示什么行为?它会在客户端机器还是服务器中可见?

+0

@Tapas想一想:你只需打开一个网站,然后点击一个链接,该链接转到服务器并以某种方式打开一个“JFrame”? JFrame不是作为Java Applet的沙箱,所以它具有完全的权限。这是不允许的,上面的代码将在服务器上运行,无论如何它都不可能出现在客户端的机器上。 Swing用于客户端开发。这不是客户端开发。可以创建链接嵌入/使用的Java Applet,也可以部署HTML(首选!)。 – pickypg 2011-06-04 16:54:36

+0

只需在服务器中。客户端将只接收HTML代码(可能是其他内容类型),但客户端不会看到您在服务器端执行的任何代码。 – Enrique 2011-06-04 16:56:10

+0

@pickypg谢谢。我可以扩展JApplet并将其用于Web应用程序吗? – 2011-06-04 17:15:06

回答

-1

当然在客户端机器上。它会神奇地打开一个经轴,并在调用之前在客户端机器上实现服务器cpu核心...

但是检票口很好,不是吗?

+1

-1:讽刺不会帮助他学习,仅仅因为你有一个Swing类的网络编程库,它实际上并不是Swing。 – jackrabbit 2011-06-04 19:21:32

+0

有时它有助于指出错误的观点。世界肯定不会为他打破。 – Omnaest 2011-06-04 20:26:59