![](/img/trans.png)
[英]How can I read and write a process in real time and display output in JTextArea in real time? (Java Swing)
[英]Java swing: How do i detect if the key pressed will display output in my JTextArea?
我正在使用文本編輯器,並且希望能夠檢測到兩種不同類型的按鍵事件之間的差異:導致JTextArea中的文本(即字母數字字符,回車鍵)的可見變化的按鍵事件,符號)以及不會導致明顯變化的符號(方向鍵,控制鍵,快捷鍵)。 我知道我可以使用非常冗長的switch語句來做到這一點,但是有沒有那么冗長的方法可以做到以下幾點?
private void checkKey (java.awt.event.KeyEvent evt) {
if (saved && /*some way to check if the text in the box has changed */) {
editorTitle.setText(currentedit + " (Edited)");
saved = false;
}
}
不要使用KeyListener。 有更好的API可以處理這些情況。
如果您想知道文本組件中的數據是否已更改,則應使用DocumentListener
。 每當添加或刪除文本時,它將生成一個事件。
閱讀Swing教程中有關如何編寫DocumentListener的部分, 以獲取更多信息。
如果您想知道何時按下箭頭鍵來調用某種動作,那么您應該使用Key Bindings
。 這就是所有Swing組件的工作方式。 KeyStroke
綁定到Action
。
有關更多信息和每個組件的默認鍵綁定的完整列表,請參見鍵綁定 。
快捷方式也可以通過使用鍵綁定在Swing中實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.