2017-02-06 1 views
-1

패널에 스크롤 패널이 있고 스크롤 패널 아래에 jtextarea가 있습니다. jtextarea append가 작동하지 않습니다.jTextArea append가 작동하지 않습니다.

로깅 용도로 사용하고 있습니다.

JPanel panel_1 = new JPanel(); 
tabbedPane.addTab("Logs", null, panel_1, null); 
panel_1.setLayout(null); 

JScrollPane scrollPane_1 = new JScrollPane(); 
scrollPane_1.setBounds(0, 0, 672, 303); 
panel_1.add(scrollPane_1); 

JTextArea jTextArea = new JTextArea(100,200); 
jTextArea.setEditable(false); 
jTextArea.setVisible(true); 
scrollPane_1.add(jTextArea); 
jTextArea.append("Hello"); 

답변

3
scrollPane_1.add(jTextArea); 

는 스크롤에 구성 요소를 추가하지 마십시오. 스크롤 구획의 뷰포트에 컴퍼넌트를 추가 할 필요가 있습니다.

JTextArea jTextArea = new JTextArea(100,200); 
jTextArea.setEditable(false); 
jTextArea.setVisible(true); 
//scrollPane_1.add(jTextArea); 
jTextArea.append("Hello"); 

JScrollPane scrollPane_1 = new JScrollPane(jTextArea); 
scrollPane_1.setBounds(0, 0, 672, 303); 
panel_1.add(scrollPane_1); 

이 작업을 수행하는 다른 방법을 사용하는 것입니다 :

또한
JScrollPane scrollPane_1 = new JScrollPane(); 
scrollPane_1.setViewportView(jTextArea); 

당신이주의해야 당신은 텍스트 영역을 매개 변수를 만들 때

이 작업을 수행하는 가장 쉬운 방법은 사용하는 것입니다 픽셀이 아닌 행/열이므로 값이 너무 큽니다. 다음과 같이 제안합니다 :

//JTextArea jTextArea = new JTextArea(100,200); 
JTextArea jTextArea = new JTextArea(30,10); 

마지막으로 스크롤 판의 경계를 설정하면 안됩니다. Swing은 레이아웃 관리자와 함께 사용하도록 설계되었습니다.

//scrollPane_1.setBounds(0, 0, 672, 303); 
+0

내가 동적으로 텍스트를 기록 할 panel_1.add (scrollPane_1) 후 jTextArea.append를 사용할 수 : 레이아웃 매니저는 텍스트 영역의 크기에 따라 스크롤의 크기를 결정한다? –

관련 문제