我的Java程序中有JTextArea
...我希望如果我在JTextArea
中编写一个星号(*),输出将为ATX
作为文本。 ..有人可以帮帮我吗?
答案 0 :(得分:3)
你可以这样做
if(yourTextArea.getText.contains("*"))
{
yourTextArea.setText("ATX");
}
答案 1 :(得分:1)
你的意思是:
String s = YourTextArea.getText().contains("*") ? "ATX" : YourTextArea.getText();
请澄清您的问题,以便我们为您提供帮助
答案 2 :(得分:1)
你可以为它添加一个键监听器,所以当键入一个键时,你检查它是否是*以及它是否用ATX替换它
答案 3 :(得分:1)
如果你想经常这样做,那么唯一的方法是通过keyListener:
http://download.oracle.com/javase/tutorial/uiswing/events/keylistener.html
在我看来,这可能是令人讨厌的功能,它可以在用户输入时将一个字符更改为3个字符。当用户使用某种方法时,请考虑这样做,在这种情况下,您不需要监听器。
答案 4 :(得分:1)
听起来你想要捕获用户的输入,然后根据它是什么来确定你是否要对它做一些事情。
首先,您需要向此JTextArea添加一个动作侦听器,以侦听用户输入的内容,以便您可以确定它是什么。您可以使用KeyListener执行此操作。接下来,您需要一种方法来确定插入符在JTextArea中的位置。您可以使用CaretListener。
执行此操作现在,当发生KeyPressed事件时,您需要确定密钥是什么。如果它实际上是星号*
,您将把文本ATX
插入到插入符号当前位置的JTextArea中。
然后您将使用以下内容:
textarea.insert("ATX", pos);
其中textarea
是JTextArea对象,pos
是一个整数,用于保存JTextArea中插入符号的当前位置。如果您不确定如何在CaretListener API上阅读插入位置。它拥有您需要的一切。
答案 5 :(得分:0)
输出在哪里?进入这个文本区域本身?那么,换句话说,你想实现某种别名吗?
在这种情况下,您可以添加KeyListener,并在其keyTyped()中实现您的逻辑:if key是*将文本添加到文本区域。