将批处理脚本集成到Java GUI中?

时间:2014-07-27 16:24:32

标签: java batch-file integration

我也问过这个问题:How to integrate batch script multiple selections into JAVA GUI?

由于我的问题没有得到合适的答案,所以我决定再次以更简短的方式再次询问stackoverflow。免责声明:我在该网站编辑了该问题。这就是我找不到合适答案的原因。

我有这个批处理脚本需要集成到java编码中。但这是我第一次进行整合,所以我不熟悉它应该如何完成。

如果有人能在该网站回答我的问题,那将是件好事。但如果你不是,那么向我提供一个将多个选择批处理脚本集成到java中的例子也是一件好事。

1 个答案:

答案 0 :(得分:0)

通过您的原始帖子,我可以得出结论,您的解决方案将非常简单:

private static String cmdLine = "";
private static final String scriptFile = "MYSCRIPT.sh"

   public GUI() {
        setTitle("FAMILY");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);



    JCheckBox chckbxMyFatherIs = new JCheckBox("My Father is Joe");
    chckbxMyFatherIs.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
           if(!cmdLine.contains("JOE"))
             cmdLine += " JOE ";
        }
    });
    chckbxMyFatherIs.setBounds(45, 48, 137, 23);
    contentPane.add(chckbxMyFatherIs);

    JCheckBox chckbxNewCheckBox = new JCheckBox("My Mother is Audrey");
    chckbxNewCheckBox.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
           if(!cmdLine.contains("AUDREY"))
             cmdLine += " AUDREY ";
        }
    });
    chckbxNewCheckBox.setBounds(196, 48, 198, 23);
    contentPane.add(chckbxNewCheckBox);

    JCheckBox chckbxNewCheckBox_1 = new JCheckBox("My Bother is Jerry");
    chckbxNewCheckBox_1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
           if(!cmdLine.contains("JERRY"))
             cmdLine += " JERRY ";
        }
    });
    chckbxNewCheckBox_1.setBounds(45, 97, 137, 23);
    contentPane.add(chckbxNewCheckBox_1);

    JCheckBox chckbxNewCheckBox_2 = new JCheckBox("My eldest Sister is June ");
    chckbxNewCheckBox_2.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
           if(!cmdLine.contains("JUNE"))
             cmdLine += " JUNE ";
        }
    });
    chckbxNewCheckBox_2.setBounds(196, 97, 198, 23);
    contentPane.add(chckbxNewCheckBox_2);

    JCheckBox chckbxNewCheckBox_3 = new JCheckBox("My youngest sister is Awy");
    chckbxNewCheckBox_3.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
           if(!cmdLine.contains("AWY"))
             cmdLine += " AWY ";
       }
    });
    chckbxNewCheckBox_3.setBounds(196, 149, 198, 23);
    contentPane.add(chckbxNewCheckBox_3);

    JCheckBox chckbxAll = new JCheckBox("All");
    chckbxAll.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {               
             cmdLine = "JOE AUDREY JERRY JUNE AWY";
        }
    });
    chckbxAll.setBounds(45, 149, 97, 23);
    contentPane.add(chckbxAll);
}

您还需要一个OK按钮的事件监听器,您可以在其中调用:

Runtime.getRuntime().exec(scriptFile + cmdLine);

请注意:这只会将参数添加到您的列表中,删除(通过取消勾选方框)也需要处理...我想您现在知道如何。 考虑使用list而不是单个字符串......这样可以减少杂乱,并允许动态查找/删除/添加参数。