2012-03-20 161 views
2

我正在使用JavaFX 2.0編寫登錄系統的項目中。 而現在我試圖寫一個連接到密碼字段的工具提示,但工具提示從不顯示..我使用'javafx-samples-2.0.3'中的FXML-LoginDemo項目。然後我試着用:http://docs.oracle.com/javafx/2.0/ui_controls/tooltip.htm#BABHCHGG例19.1。JavaFX:工具提示 - 無法顯示工具提示

如果您需要更多的代碼,看看這個問題請說出來..因爲我真的不知道是哪裏的問題..

這裏是我到目前爲止的代碼:

package demo; 

import javafx.event.ActionEvent; 
import javafx.fxml.FXML; 
import javafx.scene.control.PasswordField; 
import javafx.scene.control.TextField; 
import javafx.scene.control.Label; 
import javafx.scene.control.Tooltip; 

/** 
* Login Controller. 
*/ 
public class LoginController { 
    @FXML private TextField userId; 
    @FXML private PasswordField password; 
    @FXML private Label errorMessage; 
    @FXML final Tooltip tooltip = new Tooltip(); 

    @FXML protected void processLogin(ActionEvent event) { 


     tooltip.setText("\nYour password must be\n at least 8 characters in length\n"); 
     password.setTooltip(tooltip); 

     if(!App.getInstance().userLogging(userId.getText(), password.getText())){ 
      errorMessage.setText("Invalid username or password: " + userId.getText()); 
     } 
     //Replaces inputed password with an empty String. 
     password.setText(""); 
    } 
} 

回答

2

的定義initialize method,並在該方法中設置工具提示文本並將工具提示與密碼字段相關聯。如果您等待processLogin操作被調用以設置工具提示,那麼場景已經顯示並且用戶已經嘗試登錄。

另外,您不需要將@FXML註釋放在工具提示前面,除非您在FXML中定義了Tooltip屬性,在這種情況下可能不需要。

+0

謝謝,你是正確的,也關於@FXML註釋。 – haakonlu 2012-03-21 16:44:59