如何阻止 wordwrapped-JTextArea 调整大小以适应大内容?
我目前有一个自动换行的 JTextArea 作为聊天程序的用户输入窗口。如何使 JTextArea 不会调整大小以自动适应大文本?我已经将 JTextArea 设置为 2 行:
user_input = new JTextArea();
user_input.addAncestorListener(new RequestFocusListener());
user_input.setRows(2);
user_input.setLineWrap(true);
user_input.setWrapStyleWord(true);
I currently have a wordwrapped-JTextArea as a user input window for a chat program. How do I make it so the JTextArea doesn't resize to automatically fit large text? I have already set the JTextArea to be 2 rows:
user_input = new JTextArea();
user_input.addAncestorListener(new RequestFocusListener());
user_input.setRows(2);
user_input.setLineWrap(true);
user_input.setWrapStyleWord(true);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
您应该将
JTextArea
放入JScrollPane
中。这将使行大小保持不变,并且还有允许用户导航输入的额外好处。如果需要,您可以将滚动窗格设置为从不显示。您仍然可以依靠JTextArea
组件来计算行的高度,然后计算组件的首选高度。对
setRows
的调用用于指示显示屏上可见的行数,该属性是为了与JScrollPane
一起使用而维护的,如JTextArea
JavaDoc:*我的重点
You should put your
JTextArea
in aJScrollPane
. This will keep your row size intact, and would have the added benefit of allowing the user to navigate the input. If you want, you can set the scrollpane to never show. You can still rely on theJTextArea
component to calculate the height of the rows and then the preferred height of the component.The call to
setRows
that you use to indicate the amount of rows visible on your display is a property that is maintained to work withJScrollPane
, as described in theJTextArea
JavaDoc:*my emphasis