gpt4 book ai didi

java - Swing JTextArea : Resize Dialog properly after automatic LineWrap

转载 作者:行者123 更新时间:2023-11-30 03:41:54 25 4
gpt4 key购买 nike

我希望我没有错过一些重复的问题,我觉得这应该是微不足道的!

无论如何,我有一个包含文本的 JTextArea ,并且自动换行:

public PleaseResize(){
super();
Container cp = this.getContentPane();

JTextArea area = new JTextArea();
area.setColumns(20);
area.setLineWrap(true);
area.setEditable(false);
area.setWrapStyleWord(true);
area.setText("Once upon a midnight dreary, while I pondered, weak and weary, over many a quaint an curious volume of forgotten lore.");
cp.add(area, BorderLayout.CENTER);

cp.add(new JButton("Hallo"), BorderLayout.SOUTH);
this.pack();
}

我希望文本区域垂直调整大小以显示整个文本...但事实并非如此。如果我通过插入 \n 来选择换行符,它会很高兴地调整大小,但通过自动换行,它只会保持原来的大小。

不知何故,我觉得我错过了一些完全明显的东西......

编辑:澄清:

在创建时,我不知道文本将有多少行(由于发生自动换行)。我通过 XML 文件接收文本,换行后它的长度可能在 0 到大约 30 行之间变化。我有垂直空间来显示所有内容,但当没有或只有很少的文本要显示时,我不想滚动或有一个巨大的白色区域。

<小时/>

编辑2:

重新表述问题后,我面临的问题的关键显然不是调整 JTextArea 的大小,而是确保对话框知道它有多大!

所以,这是返回我最终使用的解决方案的链接:An automatic resizing Text above a button?

最佳答案

您需要像下一个 new JScrollPane(area); 一样用 JScrollPane 包装 JTeatArea,然后添加 JScrollPane到您的JFrame

此外,您还可以使用空构造函数创建JTextArea,使用JTextArea(int rows, int cols)指定行数和列数。

关于java - Swing JTextArea : Resize Dialog properly after automatic LineWrap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26650992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com