마지막 줄 (텍스트 영역의 높이가 제공 할 수 있음)에 도달하여 사용자가 새 줄을 시작하려고 할 때 JTextArea의 크기를 조정 (세로로 확장)하고 싶습니다. MSWord의 텍스트 상자와 같습니다.자동 크기 조정 JTextArea
나는 getLineCount()
을 사용하고 필요한 경우 JTextArea의 새 높이를 결정할 생각을 가지고 있습니다. 이것을 구현하기위한 더 나은 접근법에 대해 알고 있습니까?
마지막 줄 (텍스트 영역의 높이가 제공 할 수 있음)에 도달하여 사용자가 새 줄을 시작하려고 할 때 JTextArea의 크기를 조정 (세로로 확장)하고 싶습니다. MSWord의 텍스트 상자와 같습니다.자동 크기 조정 JTextArea
나는 getLineCount()
을 사용하고 필요한 경우 JTextArea의 새 높이를 결정할 생각을 가지고 있습니다. 이것을 구현하기위한 더 나은 접근법에 대해 알고 있습니까?
실제로 모든 텍스트 줄을 볼 수 있도록 JTextArea
은 항상 올바른 크기를 유지합니다. 당신이 경험 한 것은 아마 JScrollPane
에 텍스트 영역을 감쌌다는 것입니다. 스크롤 창을 생략하고 텍스트 영역을 컨테이너의 직접 하위로 만들면됩니다.
또 다른 해결책은 텍스트 영역의 크기 조정 이벤트를 수신하고 이에 따라 스크롤 창 크기를 조정하는 것입니다. 이렇게하면 특정 크기로 성장한 다음 스크롤 막대를 표시하기 시작할 수 있습니다 (예 : 텍스트 영역에 500KB의 텍스트를 붙여 넣는 경우).
나는 동일한 문제가있었습니다. 내 테스트에서 JTextArea가 동적으로 크기를 설정한다고 생각하지 않습니다. 대신, 그 크기는 컨테이너 (JPanel 경우)에 의해 제한되는 것 같습니다. 그러나 JTextArea는 포함 된 텍스트에 따라 기본 크기를 변경합니다. 문서에서 :
java.awt.TextArea에는 기본 크기를 결정하는 데 사용되는 두 개의 속성 행과 열이 있습니다. JTextArea는 이러한 속성을 사용하여 java.awt.TextArea에서 제공하는 기능과 일치하도록 JScrollPane 내부에 배치 될 때 뷰포트의 기본 크기를 나타냅니다. JTextArea는, JScrollPane의 내부에서 올바르게 기능하도록 (듯이), 모든 텍스트를 표시하기 위해서 필요한 사이즈를 기본으로하고 있습니다. 행 또는 열의 값이 제로의 경우, 그 축으로 따른 바람직한 사이즈가, 같은 축으로 따른 뷰포트의 적절한 사이즈에 사용됩니다.
나는 동일한 문제가있어서, 나는 JTextArea를 JScrollPane에 넣고 JTextArea의 선호 크기를 설정했다. 나는 그것이 문제의 원인이라고 생각한다.
올바른 해결책은 JTextArea를 JScrollPane에 넣고 JTextArea의 기본 크기를 만지지 않는 것입니다. 대신 JScrollPane을 설정하십시오.
JPanel에 JTextArea를 추가하기 만하면됩니다. 크기를 설정하는 것입니까? 하지만 크기를 설정하지 않으면 나타나지 않습니다. – Halo
텍스트 영역이 커지도록 JPanel의 크기를 설정하기 만하면됩니다. 텍스트 영역은 텍스트의 크기에 맞게 자동으로 조정됩니다. –
글쎄, 작동하지 않았다. BTW 나는 JTextPane을 사용하여 전환했지만 여전히 확장 문제가 계속됩니다 – Halo