有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在按钮单击事件上获取任何项目的输出

我正在NetBeans中开发Jframe表单。其实我的问题是。。。。。。。。。 我有一个列表、按钮、文本框和文本区。在列表中,有许多项目(如更新、汇总)。 当我从列表中选择一个项目时,这个列表的输入将显示在文本框中(比如Update.jar、Sum.jar)。当我执行jar文件时,jar文件的输出应该显示在TextArea中。我该怎么做呢。任何人都可以帮助我。 提前谢谢

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

 try{
 String a= String.valueOf(jList1.getSelectedValue());

jTextArea1.setText(String.valueOf(Runtime.getRuntime().exec("java -jar "+ a+".jar")));

        } catch (Exception e) {
            System.out.println(e);
    }                                        
}

求和代码。罐子

 package sum;

 public class Sum {

 public static void main(String[] args) {

 int a=10,b=90;

 int s=a+b;

 System.out.println("Sum of two numbers:"+s);    

 }
}

共 (3) 个答案

  1. # 1 楼答案

     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){                                    
     try{
      String a= String.valueOf(jList1.getSelectedValue());
       ProcessBuilder builder = new ProcessBuilder ("java", "-jar",  a+".jar"); 
       builder.redirectErrorStream(true); 
       Process process = builder.start();         
       BufferedReader reader = new BufferedReader (new InputStreamReader(process.getInputStream())); 
        StringBuilder sb = new StringBuilder();
        String line = "";
        while ((line = reader.readLine()) != null)
        {
          sb.append(line + "\n");
        }
        jTextArea1.setText(sb.toString());
        }
       catch (Exception e) {
          System.out.println(e);
       }                                        
      }
    
  2. # 2 楼答案

    我会尽力回答你的

    那么您想执行两个jar文件“Sum.jar”和“Update.jar”,并获得它们的输出并将其放入JTextArea中

    嗯,你的解决方案有两部分

    首先,您可以使用桌面API通过单击按钮启动jar文件

    比如说,

    Desktop.getDesktop().open(new File(yourfilename));
    

    这是从按钮代码启动文件

    对于“Sum.jar”和“Update.jar”,您可以这样做,以便在执行操作时,他们将计算您希望他们计算的内容,并将输出输出到文本文件中

    例如:

    FileWriter fileWriter;
            try {
                fileWriter = new FileWriter("Output.txt");
                BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
                bufferedWriter.write(yourOutput);
                bufferedWriter.close();
    
            } catch (IOException ex) {
            }
    

    然后,您可以让JTextArea扫描文本文件并将其输出到JTextArea

    例如:

            try {
    String content = new Scanner(new File("Output.txt")).useDelimiter("\\Z").next();
    jTextArea.setText(content);
            } catch (FileNotFoundException ex) 
            }
    

    我希望我能帮忙

  3. # 3 楼答案

    我想这就是你想要做的。此方法运行一个jar文件并返回其输出

    public String getOutputOf(String jarfile) throws IOException{
        ProcessBuilder builder = new ProcessBuilder ("java", "-jar",  jarfile); 
        builder.redirectErrorStream(true); 
        Process process = builder.start();             
        BufferedReader reader = new BufferedReader (new InputStreamReader(process.getInputStream())); 
        StringBuilder sb = new StringBuilder();
        String line = "";
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        return sb.toString();
    }