JTextArea
有一个比较特殊的副作用,在合适的条件下,它可以自行生长。当我试图设置一个简单的两行文本编辑器(每行字符长度受限,最多两行)时,我偶然发现了这个......
基本上,给定正确的布局管理器,这个组件可以自行增长——这实际上是有道理的,但让我感到惊讶......
现在此外,您可能希望使用 aComponentListener
来监视组件何时更改大小,如果您对此感兴趣...
public class TestTextArea extends JFrame {
public TestTextArea() {
setLayout(new GridBagLayout());
JTextArea textArea = new JTextArea();
textArea.setColumns(10);
textArea.setRows(1);
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
add(textArea);
setSize(200, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
textArea.addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent ce) {
System.out.println("I've changed size");
}
});
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new TestTextArea();
}
}