【发布时间】:2014-12-03 18:32:06
【问题描述】:
这是我正在努力解决的代码。它拒绝用新文本修改 JTextArea。我创建窗口并将其设置为在项目的主要功能中可见。 先谢谢了。
编辑: 通过拒绝,我的意思是 JTextArea 根本不会显示文本。它只是空着。我没有收到错误或异常。这一切都是合乎逻辑的。
class Window extends JFrame{
protected JTextArea text;
public Window() {
setTitle("Create a list of names");
setSize(500,400);
Container containerPane = getContentPane();
JPanel jp = new JPanel();
text = new JTextArea(10,50);
text.setPreferredSize(new Dimension(256,256) );
text.setEditable(false);
JScrollPane scrollText = new JScrollPane(text);
scrollText.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
jp.add(scrollText);
containerPane.add(jp, BorderLayout.CENTER);
text.append("Test");
}
public static void main(String[] args) {
Window w = new Window();
w.setVisible(true);
}
}
【问题讨论】:
-
拒绝是什么意思?它是否指向任何错误或异常?
-
发布的代码对我来说看起来很合理。发布您的SSCCE 来证明问题。您当前的代码不可编译或可执行,因为 main() 方法中有。另外,不要使用 setPreferedSize()。每个组件将确定自己的首选大小,布局管理器将使用此信息来正确定位/调整组件的大小。
-
对不起。通过拒绝,我的意思是 JTextArea 根本不会显示文本。它只是空着。我没有得到错误或例外。这一切都是合乎逻辑的。
-
我假设你确定
text.append正在被调用?也就是说,你的System.out.println实际上是在打印你期望的文本字段数据? -
@ChrisChevalier 请您发布一个MCVE(也称为 camickr 所说的 SSCCE)来证明这个问题? IE。创建一个示例程序,我们可以复制粘贴,编译并查看与您相同的错误,这样我们就更有能力为您提供帮助。