你好,欢迎大家,这是我的第一个问题,所以我希望它是一个好问题。我正在探索swing API,并且遇到了一个突然出现在我脑海中的问题。我基本上是问我自己,如果我可以建立一个程序,可以使用while()
循环,显示多个JTextArea中的一样你可以在控制台这样的:Java:我无法多次运行JTextArea?
while(x<100){
System.out.println("This is the number: " + x)
x++;
}
我想这在JFrame中输入代码在这里打印,但我似乎无法弄清楚如何。我试图使用JTextArea,但我真的不认为这是正确的方法。我尝试过标签,但这根本不起作用。这是源代码。
import javax.swing.*;
import java.awt.BorderLayout;
import java.awt.Container;
public class MainFrame extends JFrame{
public static int x=0;
public static int y = 0;
MainFrame(String title){
super(title);
// Set Layout
setLayout(new BorderLayout());
while(x<100){
y++;
x++;
System.out.println(x);
Container pane= getContentPane();
JTextArea x = new TextArea("Wateva" + y);
JButton button= new JButton("Wateva man");
pane.add(button, BorderLayout.SOUTH);
pane.add(x);
}
}
}
在控制台x显示每增加1,这意味着循环正确运行。我可以作为初学者程序员的唯一解释是它创建了JTextArea,但它意识到x已被更新,因此它覆盖了旧的JTextArea,并且它为每个数字执行此操作,直到达到100 。我想我使用的是错误类型的JComponent,但这就是我来到这里的原因。所以,如果任何人都可以给我提示或解决如何解决,这将非常感激。
您的代码根本不涉及JTextArea ... – 2013-04-11 20:04:24
您正在将所有组件添加到同一个地方...也许它们正在彼此铺设? – HectorLector 2013-04-11 20:09:57
我的不好...我复制并粘贴了我正在试验的代码。我更新了它,它现在应该是一个JTextArea。 – 2013-04-11 20:25:13