如何在 JLabel 中打印堆栈?

How to print Stack in a JLabel?

我有一个打印堆栈的方法,但是,它通过 System.out.println 打印,我需要将它打印到 JLabel,以便它在我的 GUI.[= 中可见11=]

我使用的是 Netbeans 的 UI 设计器,所以我有一个 JFrame 文件、一个主 class 文件和一个堆栈文件,我在其中编写了 showStack 方法。 "Pila" 是扩展堆栈的 class。

这是方法

public void showStack(Pila<Integer> s){  
        if (s.isEmpty())  
            return;  

        Integer x = s.peek();  
        s.pop();  
        showStack(s);  

        System.out.print(x + " ");  
        s.push(x);  
    }  

我想摆脱 System.out.print 并将其替换为我可以用来在 Jlabel 中打印堆栈的内容

您可以创建一个 returns 字符串的函数,并将该字符串放在标签的文本中。我认为它可以使用与控制台打印相同的代码,但将它连接成一个字符串而不是打印它

String output; // this one is to concatenate your String
public String returnStack(Pila<Integer> s){
    if (s.isEmpty())  {
        return "";
    }

    Integer x = s.peek();  
    s.pop();  
    showStack(s);  

    output+= x + " ";  
    s.push(x);
    return output;
}