いくつかのJComponentをJPanel内に垂直にスタックして、上部にスタックし、余分なスペースが下部にあるようにします。BoxLayoutを使用しています。コンポーネントにはそれぞれJTextAreaが含まれ、必要に応じてテキストを折り返すことができます。したがって、基本的に、これらの各コンポーネントの高さは、(おそらくラップされた)テキストを表示するために必要な最小の高さにしたいと思います。
これが私がやっていることの含まれているコード例です:
import javax.swing.*;
import java.awt.*;
public class TextAreaTester {
public static void main(String[] args){
new TextAreaTester();
}
public TextAreaTester(){
JFrame frame = new JFrame();
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel,BoxLayout.PAGE_AXIS));
panel.setPreferredSize(new Dimension(100,400));
for(int i = 0; i<3; i++){
JPanel item = new JPanel(new BorderLayout());
JTextArea textarea = new JTextArea("this is a line of text I want to wrap if necessary");
textarea.setWrapStyleWord(true);
textarea.setLineWrap(true);
textarea.setMaximumSize( textarea.getPreferredSize() );
item.add(textarea,BorderLayout.NORTH);
panel.add(item);
}
panel.add(Box.createGlue());
frame.add(panel);
frame.setVisible(true);
frame.pack();
}
}
子JPanelsは、垂直方向のスペースを埋めるために拡張しています。のりが目的だと思ったので、のりを使ってみましたが、何の役にも立たないようです。何か助けはありますか?
注:ほぼ同じように見える質問を見つけましたが、適用できる回答がない質問はありません。