我对 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/