早上好!我刚刚开始学习Java FX和Java FX FXML。我使用Scene Builder来构建GUI,Netbeans来编写剩下的Java FX程序。
我面临的问题是在FXML文件中。Netbeans编辑器在.fxml文件中为onAction事件显示以下代码的错误。
如果我使用Netbeans创建一个示例项目,它将使用AnchorPane,并且一切似乎都很好。但是,如果我删除AnchorPane并添加任何其他窗格和按钮,onAction事件将不起作用!
我是这门语言的初学者,因此任何帮助/指导都是非常感谢的!
注意:我做了将近半天的功课,尽我所能浏览了StackOverflow上所有可用的解决方案。
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.event.ActionEvent?>
<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.111">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
</rowConstraints>
<children>
<Button mnemonicParsing="false" onAction="#ClickedClickMe" text="Click Me!" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<Label fx:id="label" GridPane.columnIndex="1" GridPane.rowIndex="2" />
</children>
</GridPane>
package sample1;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Sample1 extends Application {
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
fxmlDocumentController.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package sample1;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
public class FXMLDocumentController implements Initializable {
@FXML
private Label label;
@FXML
private void ClickedClickMe(ActionEvent event) {
System.out.println("You clicked me!");
label.setText("Clicked Try me!!");
}
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
}
在fxml文件中设置控制器
<GridPane fx:controller="sample1.FXMLDocumentController" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.111">
早上好!我刚刚开始学习Java FX和Java FX FXML。我使用Scene Builder构建GUI,使用Netbeans编写剩余的Java FX程序。 我面临的问题是在FXML文件中。Netbeans编辑器在onAction事件的.fxml文件中的以下代码中显示错误。 如果我使用Netbeans创建一个示例项目,它使用AnchorPane,似乎一切都很好。但是,如果我删除AnchorPan
我有一些 在量角器中,我们搜索并找到元素,检查文本是否符合我们的期望,然后对该元素调用。测试在Chrome中运行良好,但在IE中就好像没有点击发生一样。破坏了测试。 IE 11是否支持点击
问题内容: 我注意到less.js在firefox中工作,但在Chrome中不工作,或者是因为我出错了吗? 即使我尝试在Chrome中仍然无法使用,我在某个地方犯了错误吗? 问题答案: 通过您提供的链接: 如果您使用的是Chrome,Less.js浏览器脚本当前将无法使用,并且由于已知的Chrome问题,网页的路径以“file:///”开头。
问题内容: 不仅如此,其他代码也有相同的问题。只是不能使用ImageView。 环境:macOS,IntelliJ 造成原因:java.lang.IllegalArgumentException:无效的URL:无效的URL或找不到资源 问题答案: 该图像构造函数接受一个url作为参数。如果您未在其中添加协议,则它将假定该项目来自类路径。显然,不会出现在您的类路径中。 要从文件而不是类路径中读取,请
问题内容: 当我迅速运行此代码时,我不知道为什么应用程序会在“ alertView.show()”部分显示一个断点而终止,请有人帮帮我。 问题答案: 从Xcode 6.0 UIAlertView类: 不推荐使用UIAlertView。改用UIAlertController和UIAlertControllerStyleAlert的preferredStyle。 在Swift(iOS 8和OS X 1
问题内容: 我已经动态创建了一个复选框。我曾经在单击复选框时调用过一个函数,该函数在Google Chrome和Firefox中有效,但 在Internet Explorer 8中不起作用 。这是我的代码: 是我的事件处理程序。 问题答案: 尝试: 更新: 对于IE9之前的InternetExplorer版本,应使用attachEvent方法将指定的侦听器注册到调用它的EventTarget上,对