当前位置: 首页 > 知识库问答 >
问题:

JavaFX Intellij onAction看起来像它没有覆盖在控制器

张浩阔
2023-03-14

我在JavaFX中创建了一个简单的Fxml应用程序。我html" target="_blank">添加了一个带有场景生成器的按钮和一个名为btnExit:Complete FXML文件的操作(完全简单且新生成)

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

<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.GridPane?>
<GridPane alignment="center" hgap="10" vgap="10" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.65" fx:controller="sample.Controller">
   <children>
      <Button mnemonicParsing="false" text="Button" onAction="#btnExit"/>
   </children>
</GridPane>

当我在控制器中创建动作时,IntelliJ告诉我它从未被使用过。

看看我的Intellij中显示的控制器

以下是Controller类的完整代码:

package sample;

import javafx.event.ActionEvent;
import javafx.fxml.FXML;

public class Controller
{
    @FXML
    public void btnExit(ActionEvent actionEvent)
    {
        System.exit(0);
    }
}

在FXML文件中,我得到了一个警告,指出需要一个类或接口。(#btnExit)。

在fxml文件中,它以红色下划线

当我运行这个程序时,一切都正常,但令人讨厌的是,它看起来好像出了什么问题。如何通过IntelliJ警告?

这在我所有的项目中都会发生,所以我试图通过“文件”创建一个全新的IntelliJ

ps:我不熟悉java和javaFX

我已更新到intellij 2016,并已重新安装:

IntelliJ IDEA 2016.1
Build #IC-145.258, built on March 17, 2016
JRE: 1.8.0_71-b15 amd64
JVM: Java HotSpot(TM) 64-Bit Server VM by Oracle Corporation

共有1个答案

岑俊明
2023-03-14

我加载你的类在我的Intellij IDE和它只是工作正常。FXML文件中没有红色下划线,CMD单击FXML中的#btnExit,导航到Controller中相应的方法定义。作为参考,我运行的理念版本是:

IntelliJ IDEA 2016.3.1 EAP
Build #IU-163.9166.7, built on November 29, 2016
JRE: 1.8.0_112-release-408-b2 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o` 

运行在OSX10.9.5上,项目JDK是Oracle1.8u102

我认为构建版本中的U代表“终极”。

我的猜测(事实就是如此)是FML文件和Controller文件的链接可能是一个“终极”功能。试着下载终极试用版,看看它是否有效。

尽管IDEA社区应该支持JavaFX,但只有Ultimate支持CSS解析和智能编辑,这是JavaFX开发的一个重要部分,因此Ultimate在任何情况下都更适合JavaFX。

 类似资料:
  • 问题内容: 我有一个JButton,出于各种原因,我想充当按钮,但看起来却像JLabel。实际上,它不一定必须是JLabel,我只是不希望显示凸起的按钮边缘。 是否有一种简单的方法可以关闭JButton的“按钮外观”,但保留所有按钮功能? 我可以构建某种组合的子类超级按钮,将其委托给jlabel进行显示,但我真的希望有类似的东西。 问题答案: 您将需要执行以下操作: 如果希望它实际绘制焦点,则可能

  • > 我有两个控制器(ControllerA和ControllerB) 两个控制器都调用一个服务(MyService)。 MyService调用名为MyRepository的接口,该接口有两个实现(FirstRepository和SecondRepository)。 如何可能在从ControllerA调用服务(MyService)时使用FirstRepository而在调用来自ControllerB

  • 我们正在开发一个Java web应用程序,将其部署为Tomcat9中的war文件。 由于系统架构的原因,我们希望有一些其他需要部署的战争文件单独的战争文件。它们是商业的,不受我的控制。 我想在pom中添加这个单独的战争作为运行时,所以我们用来部署应用程序的pom知道它们是需要的,并且在webapps目录中部署任何战争依赖项。 我遇到的问题是,当我包含这个战争运行时依赖项时,包阶段将它们作为覆盖添加

  • 问题内容: 是否有可能覆盖最后的输出,所以我可以例如可视化数组中的更改或创建一个进度栏? 例如,如果我有这个课: 我必须怎么做才能创建一个简单的进度条,而不是显示在10行中? 问题答案: 这可以在我的特定控制台(Windows)上使用,但不是很便携… 还有课程,但据我所知实际上并没有买多少钱……

  • 在spring boot中@RequestBody内容到达控制器之前,我如何覆盖它? > 此外,我还搜索了Request estBodyAdviceAdapter。 有几个链接对spring boot不起作用。 如何多次读取request.getInputStream() 如何在Spring引导到达控制器之前修改请求正文 现在,我可以将输入流读入字符串中,进行一些修改并设置回控制器的输入流吗?

  • 问题内容: 是否可以强制重命名os.rename覆盖另一个文件(如果已经存在)?例如,在下面的代码中,如果文件Tests.csv已经存在,则将其替换为Tests.txt文件(该文件也已重命名为Tests.csv)。 问题答案: 您可以尝试: 或然后: