2017-03-08 4 views
0

동적 높이 (일부 노트는 작고 다른 노트는 길다)로 텍스트 영역에 노트를 표시하고 싶습니다. 레이아웃에서 높이를 정의하기 위해 텍스트 영역에서 노트 선을 검색하고 있습니다. 다른 레이아웃을 시도했지만 제대로 작동하지 않았습니다. 의미, 다른 높이가 노트 길이에 따라 정확하게 설정되지만 GUI에서는 모든 노트 높이가 고르게 분산됩니다.)putConstraint - Java를 사용하여 Spring 레이아웃의 TextArea 동적 높이 -

이번엔 스프링 레이 아웃이 더 효과적인지 알아보기 위해 노력하고 있지만 많이 만들지 않았습니다. 진행. 나는 내 상황에서 putConstraint()를 올바르게 사용하고 있는지 확실하지 않다.

TextArea textArea = new JTextArea(); 
    textArea.setLineWrap(true); 
    textArea.setWrapStyleWord(true); 
    ComponentUtils.setComponentText(textArea, note.getDisplayLines()); 

    int height= textArea.getLineCount(); 

    JPanel innerPanel = new JPanel(); 
    SpringLayout layout = new SpringLayout(); 
    innerPanel.setLayout(layout); 
    innerPanel.add(textArea); 
    layout.putConstraint(SpringLayout.NORTH, textArea, 
      5, SpringLayout.NORTH, innerPanel); 

    outerPanel.add(innerPanel , BorderLayout.CENTER); 
+1

SpringLayout은 사용하기가 어렵습니다. 다른 레이아웃이 원하는대로 할 수 있고 작업하기가 더 쉽습니다. 질문에 ASCII 아트 그림이나 간단한 그림을 추가하여 달성하고자하는 것을 설명해 주실 수 있습니까? – VGR

+0

댓글을 주셔서 감사합니다. 예, SpringLayout에서는 도전적 이었지만 GridBagLayout에서 작동 시켰습니다. –

답변

0

내 자신의 질문을 해결하는 방법을 찾았습니다. 레이아웃과 관련하여 GridBagLayout은 JTextArea의 다양한 크기의 높이를 만드는 데 완벽하게 매치되었습니다. (다른 레이아웃을 사용하면 문제가되는 것이므로 기본적으로 높이가 고르게 분포되어 있습니다.)

GridBagLayout을 사용하면 GradBagConstraints를 인스턴스화해야합니다. 개체를 사용하면 기본 제공 함수를 호출 할 수 있습니다. 채우기, weightx, gridx, gridwith 등 GUI에서 개인적인 요구를 충족합니다.