如何在Jframe中输出结果

时间:2016-05-09 17:13:24

标签: java jframe output

我目前正致力于使用GUI输出数据的SJF调度程序。但我无法将数据输出到Jframe面板。帮助将不胜感激。我希望下面提到的代码的输出显示在Jframe上。

 public static void WTs() {
    int totalWT=0;

  for(int x=1;x<=n;x++)
  {
      WT[x]=BT[x-1]+WT[x-1];
      System.out.print("\nWaiting time for Process" + JB[x] + ":\t" + WT[x]
      + " units \t");
      totalWT= totalWT+ WT[x];
  }
        //////////////////////////2nd output/////////////////////////////
 public static void Display()
      { 

     for(int x=0;x<n;x++)
    {
      System.out.println(" JOB \t" +JB[x]);
      System.out.println(" BURST TIME\t"+BT[x]);

    }

GUI代码

    package javaapplication22;
    import javax.swing.JOptionPane;
    import java.awt.FlowLayout;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextArea;
    import javax.swing.SwingConstants;
public class NewClass extends JFrame {
private final JTextArea item1;
public NewClass(){super("SJF PROJECT ");
setLayout(new FlowLayout());
item1=new JTextArea(" ");
    add(item1);
setLocationRelativeTo(null);

  }
  }

主要课程中的GUI代码

NewClass k= new NewClass();
 k.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 k.setSize(275, 180);
 k.setVisible(true);
 k.setExtendedState(JFrame.MAXIMIZED_BOTH); 

  try {
 Thread.sleep(1000);  
  k.hide();//1000 milliseconds is one second.
  } catch(InterruptedException ex) {
  Thread.currentThread().interrupt();
  }

1 个答案:

答案 0 :(得分:0)

您需要做的事情:

  1. NewClass添加一个方法,该方法将提供对JTextArea item1的访问权。
  2. Display方法中,您需要创建一个字符串,而不是写入System.out。使用StringBuilder创建要显示的字符串。
  3. 您需要使用第1点中添加的方法帮助将JTextArea的值设置为在第2点中创建的字符串
  4. 要记住的是,您将从非GUI代码中将文本放入JTextArea中,因此请使用SwingUtilities.invokeLater在EDT上安排最终显示。

    希望这有帮助