JavaFX 控件的焦点事件 ……

时间:2021-10-12 16:59:46
JavaFX2 的控件有没有焦点事件的处理方法?
就是想知道一个TextField获得焦点,和失去焦点的事件……(就像Swing的JTextField.addFocusListener)
找了半天没找到…… 郁闷中……(如果真的没有…… JavaFX就好悲催啊……)

有没有什么好的替代方法?
大虾们,不吝赐教啊……


10 个解决方案

#1


同求,请大神指教 JavaFX 控件的焦点事件 ……

#2


public class TextFieldDemo extends Application{

public void init(Stage primaryStage){
    Group root = new Group();

    primaryStage.setScene(new Scene(root,400,200));


final TextField textField = new TextField();
textField.hoverProperty().addListener(new InvalidationListener() {
@Override
public void invalidated(Observable observable) {
if(textField.isHover()){
textField.setText("textField listener added");
}else{
textField.setText("textField listener remove");
}
}
});
root.getChildren().add(textField);
}
/* (non-Javadoc)
 * @see javafx.application.Application#start(javafx.stage.Stage)
 */
@Override
public void start(Stage arg0) throws Exception {
init(arg0);
arg0.show();
}

public static void main(String[] args) {
launch(args);
}

}

#3


哎呀,javaFX2.X 是很强大的  只是才刚刚出来 需要自己去摸索,不想学javaSe 有前辈指点,我也才开始学JavaFX  我现在 在netbeans 7.3 可视化设计插件都没找到,楼主是用什么可视化设计的?

#4


引用 3 楼 aimatwinning 的回复:
哎呀,javaFX2.X 是很强大的  只是才刚刚出来 需要自己去摸索,不想学javaSe 有前辈指点,我也才开始学JavaFX  我现在 在netbeans 7.3 可视化设计插件都没找到,楼主是用什么可视化设计的?


你直接去oracle官网上下载一个JavaFX Scene Builder 1.0  免费的

#5


结贴晚了。呵呵。

#6


找到方法了。
TextField.getFocusProperty().addChangeListener();
好像是上面这样写的,没有IDE的提示,已经不会写代码了……

#7


有没有什么办法让控件始终无法获取焦点?

#8


知道了,setFocusTraversable,和swing差不多

#9


怎样可以不通过鼠标点击的方式让某个组件获取焦点,比如按enter将焦点转移到下一个组件上?

#10


tfIp.focusedProperty().addListener(new ChangeListener<Boolean>() {
        @Override
        public void changed(ObservableValue<? extends Boolean> arg0,Boolean arg1, Boolean arg2) {
                 // TODO Auto-generated method stub

        }
});

#1


同求,请大神指教 JavaFX 控件的焦点事件 ……

#2


public class TextFieldDemo extends Application{

public void init(Stage primaryStage){
    Group root = new Group();

    primaryStage.setScene(new Scene(root,400,200));


final TextField textField = new TextField();
textField.hoverProperty().addListener(new InvalidationListener() {
@Override
public void invalidated(Observable observable) {
if(textField.isHover()){
textField.setText("textField listener added");
}else{
textField.setText("textField listener remove");
}
}
});
root.getChildren().add(textField);
}
/* (non-Javadoc)
 * @see javafx.application.Application#start(javafx.stage.Stage)
 */
@Override
public void start(Stage arg0) throws Exception {
init(arg0);
arg0.show();
}

public static void main(String[] args) {
launch(args);
}

}

#3


哎呀,javaFX2.X 是很强大的  只是才刚刚出来 需要自己去摸索,不想学javaSe 有前辈指点,我也才开始学JavaFX  我现在 在netbeans 7.3 可视化设计插件都没找到,楼主是用什么可视化设计的?

#4


引用 3 楼 aimatwinning 的回复:
哎呀,javaFX2.X 是很强大的  只是才刚刚出来 需要自己去摸索,不想学javaSe 有前辈指点,我也才开始学JavaFX  我现在 在netbeans 7.3 可视化设计插件都没找到,楼主是用什么可视化设计的?


你直接去oracle官网上下载一个JavaFX Scene Builder 1.0  免费的

#5


结贴晚了。呵呵。

#6


找到方法了。
TextField.getFocusProperty().addChangeListener();
好像是上面这样写的,没有IDE的提示,已经不会写代码了……

#7


有没有什么办法让控件始终无法获取焦点?

#8


知道了,setFocusTraversable,和swing差不多

#9


怎样可以不通过鼠标点击的方式让某个组件获取焦点,比如按enter将焦点转移到下一个组件上?

#10


tfIp.focusedProperty().addListener(new ChangeListener<Boolean>() {
        @Override
        public void changed(ObservableValue<? extends Boolean> arg0,Boolean arg1, Boolean arg2) {
                 // TODO Auto-generated method stub

        }
});