在java中从JTextArea读取文本

在java中从JTextArea读取文本,java,swing,jtextarea,Java,Swing,Jtextarea,我的Java程序中有一个JTextArea。。。我希望如果我在JTextArea中写一个asterix(*),输出将是ATX,作为文本。。。有人能帮我吗?你的意思是: String s = YourTextArea.getText().contains("*") ? "ATX" : YourTextArea.getText(); 请澄清您的问题,以便我们可以帮助您在哪里输出?进入这个文本区域本身?换句话说,您想实现某种别名吗 在这种情况下,您可以添加KeyListener,并在其keyType

我的Java程序中有一个
JTextArea
。。。我希望如果我在
JTextArea
中写一个asterix(*),输出将是
ATX
,作为文本。。。有人能帮我吗?

你的意思是:

String s = YourTextArea.getText().contains("*") ? "ATX" : YourTextArea.getText();

请澄清您的问题,以便我们可以帮助您在哪里输出?进入这个文本区域本身?换句话说,您想实现某种别名吗


在这种情况下,您可以添加KeyListener,并在其keyTyped()中实现您的逻辑:如果key是*则将文本添加到文本区域。

您可以向其中添加一个key listener,因此当键入某个key时,您可以检查它是否是*并且如果是*则将其替换为ATX

哦,请误读问题

如果您想经常这样做,那么唯一的方法就是通过keyListener:


在我看来,当用户键入时将一个字符更改为3个字符,这可能是一个相当烦人的功能。当用户做一些方法时,考虑一下,这样你就不需要一个侦听器。

< P>听起来好像你想捕获用户的输入,然后根据它是什么来决定你是否想做某件事。 首先,您需要向这个JTextArea添加一个动作监听器来监听用户类型,以便确定它是什么。你可以用一只手来做这件事。接下来,您需要一种方法来确定插入符号在JTextArea中的位置。你可以用一只手来做这件事

现在,每当发生按键事件时,您都需要确定按键是什么。如果它实际上是一个星号
*
,您将在插入符号的当前位置将文本
ATX
插入JTEXT区域

然后,您将使用以下内容:

textarea.insert("ATX", pos);
其中,
textarea
是JTextArea对象,
pos
是一个整数,用于保存JTextArea中插入符号的当前位置。如果您不确定如何在CaretListener API上读取插入符号位置。它有你所需要的一切。

你可以这样做

if(yourTextArea.getText.contains("*"))
{
    yourTextArea.setText("ATX");
}