当前位置: 首页 > 面试题库 >

简单的JavaFX HelloWorld无法正常工作

柳宪
2023-03-14
问题内容

我仍然一遍又一遍地收到此错误:Error resolving onAction='#sayHelloWorld', either the event handler is not in the Namespace or there is an error in the script.。我已经在Internet上搜索了一个解决方案,但没有任何效果,肯定是一个小细节,因为我不熟悉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类,在import部分中声明的类不是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!!");
    }
}

不需要注释。



 类似资料:
  • 问题内容: 我仍然一遍又一遍地收到此错误:。我已经在Internet上搜索了一个解决方案,但没有任何效果,肯定是一个小细节,因为我不熟悉JAvaFX,这是我的第一个HelloWorld应用程序。无论如何,这是我正在使用的代码: sample.fxml: 还有 SampleController.java 任何帮助,将不胜感激。 问题答案: 找到了问题。它是ActionEvent类,在import部分

  • log4j-core-2.0-beta8.jar 并使用默认配置完成了尽可能简单的示例: 但由于某种原因,我得到的只是‘测试结束’。我从来没有得到过Hello World,无论在哪里我都能找到。我找错地方了吗?我的理解是,在默认配置下,它应该被打印到控制台,并带有“test over”。我已经将日志级别更改为info,仍然相同。我试着把记录器功能放到一个类中,仍然是一样的。我正在log4j文档页面

  • 问题内容: 我无法弄清楚为什么我的简单AngularJS应用无法正常工作。“正在加载…”应该被隐藏,然后“完成!” 1秒后应显示。 的HTML: Javascript: 问题答案: 您需要告诉angular您更新了var: 要不就

  • 问题内容: 因此,我的设置无法按我想要的方式工作。因此,每当我运行该程序时,它就会立即从0变为100。我尝试使用,任务,并尝试了,但没有任何尝试。 这是我的程序: @MadProgrammer这是我尝试做一名摆动工作人员并将每个名称写入文档并更新进度栏的尝试。该程序将达到86%左右并停止运行,永远不会创建完成的文档。该程序将创建一个空白文档。这是我首先创建的SwingWorker对象,这是两种方法

  • 问题内容: 我在JLayeredpane上有两个JPanels。其中一个显示pdf,重叠的一个具有透明背景(我使用过setOpaque(false))。现在,我可以将图形添加到透明面板中,这样看来我实际上是在注释pdf。我想要一个橡皮擦工具来删除这些注释。我尝试使用以下代码 其中path是由多条线构成的形状。现在,不是在先前的图形上绘制 透明线 ,而是绘制 黑线 。我要去哪里错了? 问题答案: 请

  • 问题内容: 这看起来有效,但无法正常工作。我希望菜单悬停时’huh’div不透明。我尝试了淡入/淡出效果,但效果很好,但只有一次很奇怪。 问题答案: 不带点使用: