【问题标题】:Hello world with JavaFX Fxml ProjectJavaFX Fxml 项目的 Hello World
【发布时间】:2012-08-22 15:08:55
【问题描述】:

今天我要使用 JavaFX Fxml 项目创建 Hello World 应用程序。这里是代码。 示例.fxml

<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml" fx:controller="temp.Temp">
<children>
    <Button id="button" layoutX="126" layoutY="90" text="Click Me!" onAction="#handleButtonAction" fx:id="button" />
    <Label id="label" layoutX="126" layoutY="120" minHeight="16" minWidth="69" prefHeight="16" prefWidth="69" fx:id="label" />
</children>
</AnchorPane>

示例.java

package temp;
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 Sample implements Initializable {

@FXML
private Label label;

@FXML
private void handleButtonAction(ActionEvent event) {
    System.out.println("You clicked me!");
    label.setText("Hello World!");
}

@Override
public void initialize(URL url, ResourceBundle rb) {
    // TODO
}    
}

Temp.java

package temp;
import javafx.application.Appl
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Temp extends Application {
public static void main(String[] args) {
    Application.launch(Temp.class, args);
}
@Override
public void start(Stage stage) throws Exception {
    try{
    Parent root = FXMLLoader.load(getClass().getResource("Sample.fxml"));
    stage.setScene(new Scene(root));
    stage.show();
    }
    catch(Exception e){
        System.out.print(e);
    }      
}
}

但它给出了错误 /Users/apple/NetBeansProjects/Temp/nbproject/jfx-impl.xml:1757:执行此行时出现以下错误: /Users/apple/NetBeansProjects/Temp/nbproject/jfx-impl.xml:1392:jarsigner 返回:1 构建失败(总时间:६ 秒)

但是当我使用异常处理时,它给出的位置未找到? 请帮忙

【问题讨论】:

    标签: java javafx scenebuilder


    【解决方案1】:

    您正在尝试从fx:controller="temp.Temp" 加载控制器。这不是你的控制器类,你应该改用fx:controller="temp.Sample"

    【讨论】:

      【解决方案2】:

      您还 need 一个前导正斜杠来加载包资源。假设您在 temp 包中有 Sample.fxml,它看起来像这样:

      Parent root = FXMLLoader.load(getClass().getResource("/temp/Sample.fxml"));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-29
        • 1970-01-01
        • 2011-08-26
        • 2016-02-11
        • 2016-12-07
        • 1970-01-01
        相关资源
        最近更新 更多