替换另一个JTextArea

问题描述:

在我的GUI中,JScrollPane中有一个JTextArea,它连接到一个容器。替换另一个JTextArea

 ta = new JTextArea(); 
     jsp = new JScrollPane(ta); 

     container.add(jsp); 

我希望能够与其他的JTextArea替换此JTextArea中,例如

JTextArea ta1 = new JTextArea("New text area"); 
ta = ta1; 
ta.repaint(); 

然而,当我重新分配在GUI中改变了这种JTextArea中一无所获。有没有更好/正确的方法来做到这一点?

+0

JTextArea被替换之前会发生什么 – 2011-04-26 15:08:28

你应该用新的替换textarea的文本。

newTextArea.setText(oldTextArea.getText()) 

或者干脆

newTextArea.setText("new text") 
+0

是的,我实际上只是自己做了这件事。谢谢!出于兴趣,您是否知道替换JTextArea的方式(即我最初如何尝试去做)? – Alex 2011-04-26 15:09:53

+0

我不明白需要创建新的JTextArea。如果已经创建并在GUI中创建,那么只需替换文本并将其从GUI中删除即可。如果没有创建,则只需替换文本,不需要创建新文本。 – u449355 2011-04-26 15:17:48

ta = ta1; 

提出了新的文本。如果你想在GUI中显示的组件,那么你需要的组件添加(...)的GUI。

panel.add(ta1); 
panel.revalidate(); 
panel.repaint(); 

更改该参考文献没有一个组件添加到GUI。

这是你的第二个问题,试图使用变量的引用来访问GUI组件。我再次问这个问题,你为什么要这样做。在你最后一个问题中没有要求,我怀疑这个问题是必需的。你有某种设计问题。

+0

显然,为什么我来这里寻求帮助... – Alex 2011-04-26 15:16:16

+0

@Matt,你仍然没有解决你的主要问题,因为你没有说明你的要求是什么,因此我们不能建议可能的更好的方法。你所说的只是你如何试图解决这个不是必需的问题。 – camickr 2011-04-26 15:37:01