2012-03-20 330 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