簡體   English   中英

從 java 中的 JTextArea 讀取文本

[英]Reading text from JTextArea in java

我的 Java 程序中有一個JTextArea ......我希望如果我在JTextArea中寫一個星號(*),output 將是ATX作為文本......有人可以幫我嗎?

你可以這樣做

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

你的意思是:

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

請澄清您的問題,以便我們為您提供幫助

您可以為其添加一個鍵偵聽器,因此當鍵入一個鍵時,您檢查它是否為 * 以及是否將其替換為 ATX

哎呀,誤讀了這個問題。

如果你想不斷地這樣做,那么唯一的方法是通過一個 keyListener:

http://download.oracle.com/javase/tutorial/uiswing/events/keylistener.html

在我看來,當用戶鍵入時,將一個字符更改為 3 個字符,這可能是一個非常煩人的功能。 考慮在用戶執行某些方法時執行此操作,在這種情況下您不需要偵聽器。

聽起來您想捕獲用戶的輸入,然后根據它是什么來確定是否要對它做某事。

首先,您需要向此 JTextArea 添加一個動作偵聽器來偵聽用戶鍵入的任何內容,以便您確定它是什么。 您可以使用KeyListener來執行此操作。 接下來,您需要一種方法來確定插入符號在 JTextArea 中的位置。 您可以使用CaretListener來執行此操作。

現在,當 KeyPressed 事件發生時,您將需要確定鍵是什么。 如果它實際上是一個星號* ,您將在插入符號的當前 position 處將文本ATX插入到 JTextArea 中。

然后,您將使用以下內容:

textarea.insert("ATX", pos);

其中textarea是 JTextArea object 和pos是一個 integer ,它包含 JTextArea 中插入符號的當前 position。 如果您不確定如何獲得插入符號 position,請閱讀 CaretListener API。 它擁有您需要的一切。

Output在哪里? 進入這個文本區域本身? 那么,換句話說,你想實現某種別名嗎?

在這種情況下,您可以添加 KeyListener 並在其 keyTyped() 中實現您的邏輯:如果 key 是 * 將您的文本添加到文本區域。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM