You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止JavaFX应用启动时自动选中TextField?

解决JavaFX启动时TextField自动选中遮挡提示文本的问题

方法一:通过SceneBuilder设置

  • 打开目标FXML文件对应的SceneBuilder界面
  • 选中根容器(示例中的VBox)
  • 在右侧Properties面板里找到focusTraversable属性,将其设置为true
  • 启动应用时焦点会落在根容器上,而非第一个TextField,提示文本就能正常显示

方法二:通过Java代码实现

在控制器类SchermataLogin中添加初始化逻辑,让根容器获取焦点:

import javafx.fxml.FXML;
import javafx.scene.layout.VBox;

public class SchermataLogin {

    @FXML
    private VBox root; // 需给FXML根VBox添加fx:id="root"

    @FXML
    public void initialize() {
        // 让根容器获取焦点,移除TextField的默认焦点
        root.requestFocus();
    }

    // 保留原有控制器方法(如onLoginClicked等)
}

需同步修改FXML根标签,添加fx:id="root":

<VBox fx:id="root" prefHeight="400.0" prefWidth="640.0" xmlns="http://javafx.com/javafx/18" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.vipagepharma.farmacia.autenticazione.login.SchermataLogin">

替代方案

若不想修改根容器,也可直接让首个TextField放弃焦点:

@FXML
private TextField username;

@FXML
public void initialize() {
    username.clearFocus();
}

内容的提问来源于stack exchange,提问作者Allexj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 11:24:17