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