[英]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.