2017-03-08 64 views
0

我想在動態高度(一些筆記很小而其他筆記很長)的textarea中顯示筆記。 我從textarea中檢索筆記線來定義佈局中的高度。 我試過不同的佈局,但沒有成功。 (也就是說,根據音符長度設置不同的高度,但是在GUI中,所有音高均勻分佈。)使用putConstraint在Spring佈局中TextArea的動態高度 - Java

這次,我嘗試使用Springlayout來查看它是否工作得更好,但是我沒有做太多進展。如果我在我的情況下正確使用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。 通過該對象,可以調用內置函數; fill,weightx,gridx,gridwith等來滿足您在GUI中的個人需求。

相關問題