java - 关于 JTextArea 和换行符的混淆

标签 java swing newline jscrollpane jtextarea

我对 JTextArea 如何处理换行符有点困惑。我在 JScrollPane 对象中有一个 JTextArea。

JScrollPane scrollPane4 = new JScrollPane();
scrollPane4.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane4.setBounds(66, 155, 474, 133);
getContentPane().add(scrollPane4);

postingArea = new JTextArea();
postingArea.setMaximumSize(new Dimension(470, 200));
postingArea.setLineWrap(true);
postingArea.setBorder(border);
postingArea.setLineWrap(true);
postingArea.setWrapStyleWord(true);

scrollPane4.setViewportView(postingArea);

文本区域用于收集用户的输入并将其发布到 SQL 数据库。该字符串可以从数据库中读取并在其他时间重新显示在单独的网页上。当用户输入文本时,行会换行,但是,输入到数据库中的是一个长字符串。因此,重新显示的是一长串带有水平滚动条的字符串。有没有办法通过事件处理程序在文本中的适当位置添加换行符?或者,我是否只是通知用户在想要换行时按“Enter”键?

最佳答案

我没有看到 TextArea 添加到 ScrollPane 中的位置。如果真的添加了它,代码将如下所示:

JScrollPane scrollPane4 = new JScrollPane(postingArea);

并将您的 TextArea 设置为:

JTextArea postingArea = new JTextArea(ROWS, COLUMNS); 

其中 ROWS 和 COLUMNS 是指定 TextArea 中的行数和列数的整数。

并且不要使用 setBounds() 方法,而是依赖 LayoutManager 来完成其工作,如 @nachokk 所说。这不是一个偏好,而是一个好的实践。另外,由于 LayoutManager 将完成其工作,无论您设置组件的边界如何,如果 LayoutManager 不考虑自定义边界参数,它将自行计算,这就是您遇到问题的原因。

其余代码看起来不错。

关于java - 关于 JTextArea 和换行符的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22581246/

相关文章:

java - 如何在获取整个JSON数据源的同时获取某个标签

java - Kafka 流 GlobalKTable 在 Tombstone 上抛出反序列化异常 - 空值 - 记录

java - 是否可以在输出上方使用扫描仪显示输出?

java - 从 JTable 中删除正在编辑的行

java - 更改 JSlider 的可显示标签?

javascript - 允许 JavaScript 正则表达式中的换行符

java - 如何在android中切换方向锁定?

java - 在 JList 中写一些东西

python - 将带换行符的文本复制到剪贴板 :Python

c# - Windows 窗体 - 列表对话框字符串生成器追加新行