有 Java 编程相关的问题?

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

java如何在Jframe中输出结果

我目前正在开发一个SJF调度程序,该程序将使用GUI输出数据。但我无法将数据输出到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]);

    }

图形用户界面代码

    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) 个答案

  1. # 1 楼答案

    你需要做以下几件事:

    1. NewClass添加一个方法,该方法将提供对JTextArea item1的访问
    2. Display方法中,您需要创建一个字符串,而不是写入System.out。使用StringBuilder创建要显示的字符串
    3. 您需要在第1点中添加的方法的帮助下,将JTextArea的值设置为第2点中创建的字符串

    要记住的一点是,您将从非GUI代码将文本放入JTextArea中,因此使用SwingUtilities.invokeLater来安排EDT上的最终显示

    希望这有帮助