我们可以在DOS模式下启动Java Jframe程序

时间:2014-07-06 17:36:11

标签: java swing jsp servlets

我在Java动态应用程序中有以下JForm,我需要下载一些我不希望在GUI中显示它的文件,我希望程序通过命令行运行。

我们可以以相同的形式进行,还是需要为它创建一个单独的桌面应用程序?

这是代码..

  public class LoginForm extends javax.swing.JFrame
  {

   \\some other code

   \\ main function of form

    /**
     * @param args the command line arguments
     */
      public static void main(String args[]) {
        try {
            if(args.length > 0)
            {
                setGuiDisplay(1);
                for (String s: args) {
                    System.out.println(s);
                }
            }
            else
            {

            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(LoginForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(LoginForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(LoginForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(LoginForm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }

     public static void setGuiDisplay(int GuiDisplay) {
        LoginForm.GuiDisplay = GuiDisplay;

        //Start Downloading
         FrmMain frm1=  new FrmMain();
         frm1.StartDownload();
    }

2 个答案:

答案 0 :(得分:0)

是的,当没有GUI代码与下载混合时,从不调用setVisible(true)是可能的,如错误消息。可能是进度动画已完成,但没有任何效果,因为没有显示任何内容。

这是一个重构问题,将下载与GUI分开;这是有道理的。

对于其他搜索者:Java也可以无头安装,即:一些没有GUI的linux系统,就像一些简约的服务器。 人可能会遇到问题。

答案 1 :(得分:0)

当然,您可以将某些内容下载到Swing应用程序中。您需要让这个过程在一个单独的线程中运行。

查看 SwingWorker 。该组件将帮助您设计与GUI操作并行运行的线程。或者,如果下载后无需在GUI中显示任何内容,则可以使用标准线程。