gpt4 book ai didi

java - 简单的 JavaFX HelloWorld 不起作用

转载 作者:行者123 更新时间:2023-11-30 08:03:32 24 4
gpt4 key购买 nike

我仍然一遍又一遍地收到此错误:解析 onAction='#sayHelloWorld' 时出错,要么事件处理程序不在命名空间中,要么脚本中存在错误。。我在互联网上搜索了解决方案,但没有任何效果,因为我是 JAvaFX 新手,所以肯定是我遗漏了一个小细节,这是我的第一个 HelloWorld 应用程序。无论如何,这是我正在使用的代码:

sample.fxml:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>

<GridPane alignment="center" hgap="10" vgap="10" xmlns="http://javafx.com/javafx/8"
xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.SampleController">
<columnConstraints>
<ColumnConstraints />
<ColumnConstraints />
</columnConstraints>
<rowConstraints>
<RowConstraints />
<RowConstraints />
</rowConstraints>
<children>
<Button text="Load News"
GridPane.columnIndex="1" GridPane.rowIndex="1"
onAction="#sayHelloWorld"/>
<Label GridPane.columnIndex="0" GridPane.rowIndex="1" fx:id="helloWorld"/>
</children>
</GridPane>

SampleController.java

package sample;

import javafx.scene.control.Label;

import java.awt.event.ActionEvent;

public class SampleController {
public Label helloWorld;

public void sayHelloWorld(ActionEvent actionEvent) {
}
}

如有任何帮助,我们将不胜感激。

最佳答案

发现问题了。它是 ActionEvent 类,导入部分中声明的类不是 JavaFX 类,因此使用正确的类可以使其工作。这是最终的代码:

package sample;

//import java.awt.event.ActionEvent; //This was the error!
import javafx.event.ActionEvent;
import javafx.scene.control.Label;

public class SampleController {
public Label helloWorld;

public void sayHelloWorld(ActionEvent actionEvent) {
helloWorld.setText("Hello World!!");
}
}

不需要注释。

关于java - 简单的 JavaFX HelloWorld 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31518429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com