【问题标题】:how to scan lines of JTextArea?如何扫描 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)。扫描是什么意思?

标签: java swing textarea


【解决方案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 具有该功能)。
猜你喜欢
  • 2014-05-06
  • 1970-01-01
  • 2021-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-30
  • 1970-01-01
  • 2015-11-23
相关资源
最近更新 更多