【问题标题】:JavaFX Intellij onAction looks like its not covered in controllerJavaFX Intellij onAction 看起来它没有包含在控制器中
【发布时间】:2016-07-11 06:09:23
【问题描述】:

我在 JavaFX 中创建了一个简单的 Fxml 应用程序。我添加了一个带有场景构建器的按钮和一个名为 btnExit 的操作: 完整的 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 告诉我它从未使用过。

Look at the Controller displayed in my 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)。

in the fxml file it is underlined in red color

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

这发生在我的所有项目中,所以我尝试通过“文件”>“新项目”>“JavaFX 应用程序”使用 IntelliJ 创建一个全新的项目。 我认为这是我的设置或 jdk 有问题,但我不知道它可能是什么。

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

【问题讨论】:

  • 你能提供更多细节吗?就像控制器类的声明一样,以及&lt;Button/&gt; 所在的任何容器都表示它正在使用您的控制器类?理想情况下,您想帮助我们reproduce the problem...
  • 我编辑了更多信息,谢谢
  • 好吧,我不使用 IntelliJ,也不使用 JavaFX,但你至少让知道这些事情的人更有可能帮助你.. . 同时,我浏览了一下,我看到的 JavaFX 教程和示例都没有声明默认命名空间。尝试摆脱xmlns="http://javafx.com/javafx/8.0.65" 位。否则,我就没主意了。
  • 我怀疑这只是 IntelliJ 本身的问题。它并不总是能识别某些文件格式以及它应该如何处理它们。因此,它会将自己与 XML、HTML 等混淆,并给出警告。这很烦人,但我基本上学会了和他们一起生活。
  • 另外,是的,你的 fx 命名空间是错误的,应该是:xmlns:fx="http://javafx.com/fxml"。而且我认为您根本不需要另一个。

标签: java intellij-idea javafx fxml


【解决方案1】:

我在我的 Intellij IDE 中加载了您的类,它运行良好。 FXML 文件中没有出现红色下划线,并且 CMD+单击 FXML 中的 #btnExit 导航到 Controller 中的相应方法定义。作为参考,我正在运行的 Idea 版本是:

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` 

OS X 10.9.5上运行,项目JDK为Oracle 1.8u102

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

我的猜测(仅此而已)是 FML 文件和控制器文件的链接可能是“终极”功能。尝试下载终极试用版,看看它是否有效。

虽然 IDEA Community 应该支持 JavaFX,但只有 Ultimate 支持 CSS 解析和智能编辑,这是 JavaFX 开发的重要组成部分,所以 Ultimate 无论如何都更适合 JavaFX。

【讨论】:

    猜你喜欢
    • 2015-05-29
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 2018-09-15
    相关资源
    最近更新 更多