首页 >Java >java教程 >如何从其他类修改 JavaFX 控制器中的 TextArea 值?

如何从其他类修改 JavaFX 控制器中的 TextArea 值?

Barbara Streisand
Barbara Streisand原创
2024-11-03 21:55:02961浏览

How to Modify TextArea Values in JavaFX Controllers from Other Classes?

JavaFX 控制器类错误

问题:
许多开发人员很难实现 JavaFX 控制器,特别是在寻求解决方案时修改其他类中的 TextArea 值。尝试创建扩展可初始化的控制器类通常会带来挑战。

修复:

避免使用 Application 类作为控制器。相反,创建一个单独的 Controller 类来扩展 JavaFX 的 Controller 类之一,例如 Initializes。

此外,将 @FXML 代码块与 Main 类分离并将其放置在 Controller 类中。这种分离将允许更轻松地从其他类更新场景。

示例:

这是一个示例实现:

// Controller class (extends Initializable)
public class ImportController implements Initializable {
    // ...

    @Override
    public void initialize(URL location, ResourceBundle resources) {
        // Initialize the controller
    }

    @FXML
    protected void changeTextAreaValue(String newText) {
        // Update the TextArea value
    }
}

// Main class (loads the FXML and controller)
public class Main extends Application {
    // ...

    @Override
    public void start(Stage primaryStage) {
        try {
            FXMLLoader loader = new FXMLLoader();
            loader.setController(new ImportController());
            Parent root = loader.load(getClass().getResource("Root.fxml"));

            // ...
        }
        // ...
    }
}

附加说明:

  • 在 UI 正常运行之前避免使用多线程代码。
  • 考虑使用第三方日志框架来实现高效的 JavaFX 日志记录(例如 JFXLogger) .

以上是如何从其他类修改 JavaFX 控制器中的 TextArea 值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn