Kea*_*nu 6 java keylistener javafx-2 scenebuilder
我最近开始玩Java FX,FXML和场景构建器,我一直在尝试将关键监听器添加到场景的一个控制器中.但是,当我这样做时,关键的听众不能正常工作,我认为这是因为他们没有专注于那个特定的场景.我试图访问控制器所属的场景,以便直接设置它,但它出现了它是空场景的一部分.
有没有办法获得对使用此控制器的场景的访问权限,以便尝试将关键事件和侦听器分配给该特定场景?我应该通过整个应用程序中的静态rootController吗?或者,更好的是,有更简单的方法来解决这个问题吗?
我看到的大多数示例都假设所有内容大部分都在主类中,或者在没有引入FXML的情况下分成几个其他类,并且我不确定如何在使用java控制器,FXML页面时应用它们的修复程序,以及主要应用程序全部分开.
谢谢你的帮助!
Ita*_*iha 18
使用Controller中绑定的任何控件并getScene()在其上使用.
请记住不要使用它,initialize()因为在initialize()为控制器调用时,根元素(虽然已完全处理)仍未放置在场景中
public class WindowMainController implements Initializable {
@FXML
private Button button;
@FXML
private void handleButtonAction(ActionEvent event) {
System.out.println(button.getScene()); // Gives you the Scene
}
@Override
public void initialize(URL url, ResourceBundle rb) {
System.out.println(button.getScene()); // Prints null
}
}
Run Code Online (Sandbox Code Playgroud)