[英]KeyListener Isn't working on a textbox?
我在文本輸入中添加了一個KeyListener,它似乎並沒有記錄我按下Enter的事實,因為它甚至沒有打印出文本值。 有任何想法嗎?
txtPort.addKeyListener(new KeyAdapter() {
public void KeyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
System.out.println(txtName.getText());
System.out.println(txtAddress.getText());
System.out.println(txtPort.getText());
if(txtName.getText().equals("") && txtAddress.getText().equals("") && txtPort.getText().equals("")) {
String name = txtName.getText();
String address = txtAddress.getText();
int port = Integer.parseInt(txtPort.getText());
login(name, address, port);
}
}
}
});
不要使用KeyListener。
相反,只需將ActionListener
添加到JTextField
。 當按下Enter
鍵時,將調用ActionListener
。
您正在使用&(按位與)運算符。
參見https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html
您應該使用&&(邏輯AND)運算符。
參見https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
要檢查是否已填寫字符串,請使用isEmpty方法。
if (((txtName.getText() != null) && !txtName.getText().isEmpty()) &&
((txtAddress.getText() != null) && !txtAddress.getText().isEmpty()) &&
((txtPort.getText() != null) && !txtPort.getText().isEmpty()))
只需提交我的評論作為可能的答案。 更改第一行:
lblPort.addKeyListener(new KeyAdapter() {
至
txtPort.addKeyListener(new KeyAdapter() {
我認為您將監聽器連接到錯誤的控件,並且它永遠不會觸發。 您稍后調用txtPort.GetText()
,因此對於文本框控件而言,這似乎是正確的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.