如何扫描 JTextArea 的行?
Posted
技术标签:
【中文标题】如何扫描 JTextArea 的行?【英文标题】:how to scan lines of JTextArea? 【发布时间】:2014-02-14 06:23:45 【问题描述】:正如标题所说,我想扫描一个 textArea。是否可以同时扫描数字和字符串?
还有一件事,我用setBounds
作为textArea的位置,但是不起作用。
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class TextArea
JFrame frame = new JFrame();
JPanel panel = new JPanel();
JTextArea area = new JTextArea(4, 10);
public TextArea()
area.setBounds(110, 250, 40, 40); //doesn't work
frame.add(panel);
panel.add(area);
frame.setTitle("Area");
frame.setVisible(true);
frame.setSize(900, 580);
frame.setLocationRelativeTo(null);
public static void main(String[] args)
new TextArea();
【问题讨论】:
不要使用setBounds
依赖于你隐含使用的布局管理器(FlowLayout)。扫描是什么意思?
【参考方案1】:
您可以实现DocumentListener 并充当文档的观察者,例如在插入/删除文本时进行监听。在How to Write a DocumentListener 中查看如何操作。
【讨论】:
对于该区域的位置,我该如何解决? setbounds 不起作用 了解How to use Layout Managers。框架默认是 BorderLayout 然后你在中心添加一个面板,这将获得所有屏幕,然后 jpanel 默认布局管理器是FlowLayout
你添加一个 JTextArea(我建议你使用 JScrollPane 和 JTextArea)这将进入中心。
【参考方案2】:
你可以通过这样做来访问文本区域内的文本
String contents = area.getText();
一旦你有了字符串,你就可以对它使用任何你喜欢的字符串处理(例如split("\n")
将它分成几行)。
【讨论】:
我知道,有更快的方法来做到这一点吗?例如,当我在 textarea 中写一行时,我可以在不获取整个文本的情况下拆分它? 对于该区域的位置,我该如何解决? setbounds 不起作用 @CiMat 定位您需要设置其所在面板的布局管理器的区域并使用适当的布局约束...或使用可让您以图形方式设计面板的 IDE。 (例如,Netbeans 具有该功能)。以上是关于如何扫描 JTextArea 的行?的主要内容,如果未能解决你的问题,请参考以下文章
如何计算文本在 JTextArea 中的行数(以及每行中的列数)?