Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX硬焦点在其他窗口区域丢失单击_Java_Css_User Interface_Javafx - Fatal编程技术网

JavaFX硬焦点在其他窗口区域丢失单击

JavaFX硬焦点在其他窗口区域丢失单击,java,css,user-interface,javafx,Java,Css,User Interface,Javafx,我在JavaFX应用程序中从TextField中取下焦点时遇到一些问题 当窗口布局上的文本字段很少时,我可以单击另一个,它将“重新聚焦”,这没关系 我想做的事情是填充我的文本字段;完成填充后,我想在应用程序窗口区域的其他地方单击(而不是在其他文本字段上),它必须将焦点从我的文本字段上移开 我在谷歌上搜索了几个小时,没有结果。。。 CSS修改也可以接受 希望你的帮助或想法 Thanx提前。焦点必须在某个地方,所以真正的想法是,如果你不想要任何东西,无论是对焦点的视觉识别,还是对键盘输入的响应,都要

我在JavaFX应用程序中从TextField中取下焦点时遇到一些问题

当窗口布局上的文本字段很少时,我可以单击另一个,它将“重新聚焦”,这没关系

我想做的事情是填充我的文本字段;完成填充后,我想在应用程序窗口区域的其他地方单击(而不是在其他文本字段上),它必须将焦点从我的文本字段上移开

我在谷歌上搜索了几个小时,没有结果。。。 CSS修改也可以接受

希望你的帮助或想法

Thanx提前。

焦点必须在某个地方,所以真正的想法是,如果你不想要任何东西,无论是对焦点的视觉识别,还是对键盘输入的响应,都要有焦点,那么你必须把焦点放在一个既不做这些事情也不做这些事情的组件上

例如:

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;

public class UnfocusTextField extends Application {

    @Override
    public void start(Stage primaryStage) {
        GridPane root = new GridPane();
        root.setOnMousePressed(e -> root.requestFocus());
        root.setAlignment(Pos.CENTER);
        root.setHgap(10);
        root.setVgap(10);
        for (int i = 0 ; i < 10; i++) {
            root.add(new TextField(), i % 2, i / 2 );
        }
        Scene scene = new Scene(root, 600, 600);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
导入javafx.application.application;
导入javafx.geometry.Pos;
导入javafx.scene.scene;
导入javafx.scene.control.TextField;
导入javafx.scene.layout.GridPane;
导入javafx.stage.stage;
公共类UnfocusTextField扩展应用程序{
@凌驾
公共无效开始(阶段primaryStage){
GridPane root=新的GridPane();
root.setOnMousePressed(e->root.requestFocus());
根部设置对齐(位置中心);
根。setHgap(10);
根.setVgap(10);
对于(int i=0;i<10;i++){
添加(新的TextField(),i%2,i/2);
}
场景=新场景(root,600600);
初级阶段。场景(场景);
primaryStage.show();
}
公共静态void main(字符串[]args){
发射(args);
}
}

您尝试过setFocused()方法吗?user43968,是的!问题是我的窗口上有其他布局。。。根据参数q-ty,我正在填充TFs的不同q-ty,它们都包在HBox中。你想让focus去哪里?James_D,诀窍不存在。只从TF中消失…您是否见过其他应用程序以这种方式运行?引入不同于任何其他程序的UI行为可能会让最终用户感到困惑。是的,它是有效的!所有的魔力都在
root.setOnMousePressed(e->root.requestFocus())中非常感谢!:)