2011-04-26 3 views
1

내 GUI에는 컨테이너에 연결된 JScrollPane 내에 JTextArea가 있습니다.하나의 JTextArea를 다른 것으로 바꾸기

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

     container.add(jsp); 

나는 내가 GUI 변경이 JTextArea에 아무것도 할당하지 않을 때, 그러나

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

예를

를 들어, 다른 JTextArea에 함께이 JTextArea에 교체 할 수 있어야합니다. 이 작업을 수행하기위한 더 나은/올바른 방법이 있습니까?

+0

JTextArea를 교체하기 전에 수행해야 할 작업 –

답변

1

텍스트 영역의 텍스트를 새로운 것으로 바꿔야합니다. 이 구성 요소는 사용자가 GUI에 (...) 구성 요소를 추가 할 필요가 다음 GUI에 표시하려면

newTextArea.setText(oldTextArea.getText()) 

또는 간단하게는

newTextArea.setText("new text") 
+0

예, 실제로이 작업을 직접 수행했습니다. 감사! 관심이 없으면 JTextArea를 대체 할 방법을 알고 있습니까 (예 : 원래 어떻게 사용했는지). – Alex

+0

새로운 JTextArea를 생성 할 필요가 없다는 것을 이해합니다. GUI가 이미 생성되어 있고 GUI에 있으면 텍스트를 대체하고 GUI에서 제거하십시오. 그것이 창조되지 않는 경우에 다만 새로운 것을 창조 할 필요가없는 본문을 대체하십시오. – u449355

1
ta = ta1; 

에 의해 새로운 텍스트를 넣어.

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

참조를 변경해도 구성 요소가 GUI에 추가되지 않습니다.

이것은 GUI 구성 요소에 액세스하기 위해 변수 참조를 사용하여 재생하려고 시도하는 두 번째 질문입니다. 다시 나는 왜 당신이 이것을하고 있는지에 관해 질문한다. 마지막 질문에 반드시 필요한 것은 아니며이 질문에서이 질문이 필요하다고 생각됩니다. 디자인 문제가 있습니다.

+0

분명히, 왜 도움을 청하기 위해 여기에 왔습니까? – Alex

+0

@Matt, 귀하의 요구 사항이 무엇인지 명시하지 않았기 때문에 여전히 주요 문제를 다루지 않으므로 더 나은 접근 방법을 제안 할 수는 없습니다. 당신이 말한 것은 요구 사항이 아닌 문제를 해결하려는 방법입니다. – camickr

관련 문제