【问题标题】:How to print Stack in a JLabel? [closed]如何在 JLabel 中打印堆栈? [关闭]
【发布时间】:2020-07-06 14:25:32
【问题描述】:

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

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

这是方法

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 中打印堆栈的东西

【问题讨论】:

  • 一个 JLabel 只显示一行文本——这是你想要的吗?我认为您可能希望将堆栈打印为一列文本,例如在 JList 中。
  • 好的,任何方式都可以,我对 GUI 构建非常陌生,所以如果 Jlist 更好,我会使用它。
  • 那么最好先解决解决方案,而不是要求其他人提供您的代码,甚至推动正确的方向。加油,祝你好运
  • 那么请在您的问题edit 中向我们展示您的 GUI 尝试。这也将大大提高问题的质量。

标签: java swing user-interface stack jlabel


【解决方案1】:

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

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;
}

【讨论】:

    猜你喜欢
    • 2014-09-16
    • 2010-09-23
    • 2012-11-26
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    • 2012-08-23
    • 2016-04-11
    • 1970-01-01
    相关资源
    最近更新 更多