2016-12-12 29 views
0

我試過這種不同的方式,沒有工作。首先解釋:用戶完成編輯後的TextField監聽器? JavaFX

圖片表(GridView控件)的:

enter image description here

  1. 我有一個表又名(GridView控件是特定的),我充滿的TextField。
  2. 右上角的三角形可以編輯,下角的不能。
  3. 如果用戶輸入1-9鏡像字段get的值爲1 /(1-9)
  4. 用戶還可以寫入1 /(1-9)並且鏡像字段get的值爲1 -9(不要緊,如果輸入是1/9或實際數字,0.1111)

第三點很簡單,我只是用changeListener獲得了兩個文本字段並更改了值。 (簡單的正則表達式:^ [1-9])。這已經完成了。

我試着用正則表達式檢查if語句是否以1開始,然後是1 /然後是1 /(2-9),但它有很多錯誤(錯誤看起來像這樣=>,我不記得這個描述),它太複雜了,以後會引發問題。我也試過用戶可以輸入小數點0.1111 = 9也是同樣的問題。

是否有一個聽衆,我可以使用,開始時,用戶完成(輸入是整體)。或者你將如何解決這個問題?

+0

的問題不應該:**怎麼知道用戶已經完成編輯**?之後,你將很容易處理他寫的內容。 –

+0

的確,我有什麼選擇可以知道他什麼時候結束。或者有關如何解決這個問題的任何其他想法。 –

+0

您可以使用延遲或每個輸入字符之間的間隔,如果延遲時間結束,請致電您的方法! –

回答

1

這應該工作:

field.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent e) { 
     // what happens after Enter is pressed 
    } 
}); 
1

兩個常見的(但不是唯一的)解決方案是:

1)所做的編輯字段,當用戶按回車鍵/返回。然後,您可以運行基於該按鍵的驗證功能。 (see here

2)當字段失去焦點時驗證是否運行。 (see here

+0

我會先嚐試2),但是沒有textfield的焦點偵聽器(在javafx中)。但可以這樣做,我想:http://stackoverflow.com/questions/16549296/how-perform-task-on-javafx-textfield-at-onfocus-and-outfocus –

+0

啊好的電話,我忘了javafx部分! – Rabbit