使用putConstraint-Java的Spring布局中TextArea的动态高度

使用putConstraint-Java的Spring布局中TextArea的动态高度,java,swing,layout,textarea,panel,Java,Swing,Layout,Textarea,Panel,我希望在文本区域中以动态高度显示注释(有些注释很小,有些注释很长)。 我正在从文本区域检索注释行,以定义布局中的高度。 我尝试过不同的布局,但没有成功。(也就是说,根据注释长度正确设置不同的高度,但在GUI中,所有注释高度都是均匀分布的。) 这一次,我正在尝试Springlayout,看看它是否工作得更好,但我没有取得多大进展。我不太确定在我的情况下是否正确使用了putConstraint() TextArea textArea = new JTextArea(); textAr

我希望在文本区域中以动态高度显示注释(有些注释很小,有些注释很长)。 我正在从文本区域检索注释行,以定义布局中的高度。 我尝试过不同的布局,但没有成功。(也就是说,根据注释长度正确设置不同的高度,但在GUI中,所有注释高度都是均匀分布的。)

这一次,我正在尝试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);

我找到了解决我自己问题的方法。 至于布局,GridBagLayout非常适合创建不同高度的JTextArea。(使用其他布局时,默认情况下,它们均匀分布高度,这在我的情况下是个问题。)

使用GridBagLayout时,需要实例化GradBagConstraints。
通过对象,可以调用内置函数;fill、weightx、gridx、gridwith等,以满足您在GUI中的个人需求。

SpringLayout很难使用。很可能另一种布局可以满足您的需要,并且更易于使用。您能否在问题中添加ASCII艺术图片或简单绘图,以说明您试图实现的目标?谢谢您的评论。。是的,在SpringLayout中很有挑战性,但我在GridBagLayout中成功了。