Java 如何在JLabel中打印堆栈?
我有一个打印堆栈的方法,但是,它通过System.out.println打印,我需要将它打印到一个JLabel,以便它在我的GUI中可见 我使用的是Netbeans的UI设计器,因此我有一个JFrame文件、一个主类文件和一个堆栈文件,我在其中编写了showStack方法。 “Pila”是一个扩展堆栈的类 这就是方法Java 如何在JLabel中打印堆栈?,java,swing,user-interface,stack,jlabel,Java,Swing,User Interface,Stack,Jlabel,我有一个打印堆栈的方法,但是,它通过System.out.println打印,我需要将它打印到一个JLabel,以便它在我的GUI中可见 我使用的是Netbeans的UI设计器,因此我有一个JFrame文件、一个主类文件和一个堆栈文件,我在其中编写了showStack方法。 “Pila”是一个扩展堆栈的类 这就是方法 public void showStack(Pila<Integer> s){ if (s.isEmpty()) ret
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);
}
publicsvoidshowstack(pilas){
如果(s.isEmpty())
回来
整数x=s.peek();
s、 pop();
陈列柜;
系统输出打印(x+“”);
s、 推(x);
}
我想去掉System.out.print并用我可以用来在Jlabel中打印堆栈的东西替换它。您可以创建一个返回字符串的函数,并将该字符串放在标签文本上。我认为它可以使用与控制台打印相同的代码,但将其串联成字符串而不是打印
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;
}
字符串输出;//这是用来连接字符串的
公共字符串返回堆栈(Pila s){
如果(s.isEmpty()){
返回“”;
}
整数x=s.peek();
s、 pop();
陈列柜;
输出+=x+“”;
s、 推(x);
返回输出;
}
JLabel只显示一行文本——这是您想要的吗?我认为您可能希望将堆栈打印为一列文本,例如在JList中。好的,任何方式都可以,我对GUI构建非常陌生,因此如果JList更好,我将使用它。那么最好您首先与解决方案进行斗争,而不是要求其他人提供代码,甚至向正确的方向推进。去吧,祝你好运。然后,请在你的问题中向我们展示你的GUI尝试。这也将大大提高问题的质量。