“java.lang.reflect.InitationTargetException”的问题

问题描述 投票:0回答:1

我对此很陌生,每次尝试运行程序时都会收到此消息,我对此有疑问。我已经尝试了一千件事,但我不知道还能做什么。如果有人可以帮助我,我将不胜感激。

Exception in Application start method
java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at [email protected]/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
    at [email protected]/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:364)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1135)
Caused by: java.lang.RuntimeException: Exception in Application start method
    at [email protected]/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:893)
    at [email protected]/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
    at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: javafx.fxml.LoadException: 
/C:/Users/usuario/Documents/ECLIPSE/Saludador/bin/hola/hellofx.fxml:9

    at [email protected]/javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2722)
    at [email protected]/javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:935)
    at [email protected]/javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:983)
    at [email protected]/javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:230)
    at [email protected]/javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:757)
    at [email protected]/javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2853)
    at [email protected]/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2649)
    at [email protected]/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2563)
    at [email protected]/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3376)
    at [email protected]/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3332)
    at [email protected]/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3300)
    at [email protected]/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3272)
    at [email protected]/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3248)
    at [email protected]/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3241)
    at hola.Main.start(Main.java:13)
    at [email protected]/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:839)
    at [email protected]/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:483)
    at [email protected]/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:456)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
    at [email protected]/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:455)
    at [email protected]/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at javafx.graph[email protected]/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at [email protected]/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:185)
    ... 1 more
Caused by: java.lang.ClassNotFoundException: hellofx.Controller
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
    at [email protected]/javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:933)
    ... 22 more
Exception running application hola.Main

主要

package hola;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage stage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("hellofx.fxml"));
        
        Scene scene = new Scene(root);
        
        stage.setScene(scene);
        stage.show();
    }


    public static void main(String[] args) {
        launch(args);
    }
}

控制器

package hola;

import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;

public class Controller implements Initializable {

    @FXML
    private Label greetingLabel;
    @FXML
    private Button greetButton;
    @FXML
    private TextField usernameInput;
    
    @FXML
    private void handleButtonAction(ActionEvent event) {
        String nombre = usernameInput.getText();
        greetingLabel.setText("Hola " + nombre);
        usernameInput.setText(null);
        
        
    }
   /*public void initializable(URL url, ResourceBundle rb) {
        
    }*/
    @Override
    public void initialize(URL arg0, ResourceBundle arg1) {
        // TODO Auto-generated method stub
        
    }

    
}

fxml

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

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.StackPane?>

<StackPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="hellofx.Controller">
   <children>
      <AnchorPane prefHeight="200.0" prefWidth="200.0">
         <children>
            <Label fx:id="greetingLabel" layoutX="105.0" layoutY="271.0" prefHeight="65.0" prefWidth="389.0" />
            <Button fx:id="greetButton" layoutX="241.0" layoutY="173.0" mnemonicParsing="false" onAction="#handleButtonAction" prefHeight="53.0" prefWidth="117.0" text="Saludar" />
            <TextField fx:id="usernameInput" layoutX="108.0" layoutY="89.0" prefHeight="25.0" prefWidth="389.0" promptText="Introduce tu nombre" />
         </children>
      </AnchorPane>
   </children>
</StackPane>

我正在尝试运行一个程序,当您按下按钮时,它会返回一条问候语。

exception controller fxml program-entry-point java.lang.class
1个回答
0
投票

fxml 中绑定的控制器名称错误。

将其更改为正确的类名和完整的包名称。

来自

<StackPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="hellofx.Controller">

<StackPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="hola.Controller">
© www.soinside.com 2019 - 2024. All rights reserved.