Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con el constructor al cargar FXML

Estas en el tema de Problema con el constructor al cargar FXML en el foro de Java en Foros del Web. Hola buena, Mi problema es el siguiente. Estoy con mi primer contacto con FXML pero me pasa una cosa muy rara, creo un Button y ...
  #1 (permalink)  
Antiguo 01/10/2015, 08:15
 
Fecha de Ingreso: julio-2015
Mensajes: 85
Antigüedad: 9 años, 4 meses
Puntos: 4
Problema con el constructor al cargar FXML

Hola buena,

Mi problema es el siguiente.

Estoy con mi primer contacto con FXML pero me pasa una cosa muy rara, creo un Button y le pongo el texto Pulsar, hasta ahi todo bien, le doy a ejecutar y me sale lapantallita. El siguiente paso es meterle una accion al boton y elijo el onAction y lo pongo en el FXML quedando el codigo de la siguiente manera:
Código XML:
Ver original
  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <?import javafx.scene.image.*?>
  4. <?import javafx.scene.control.*?>
  5. <?import java.lang.*?>
  6. <?import javafx.scene.layout.*?>
  7. <?import javafx.scene.layout.AnchorPane?>
  8.  
  9. <AnchorPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
  10.    <children>
  11.       <AnchorPane layoutX="-147.0" layoutY="-237.0" prefHeight="200.0" prefWidth="200.0" />
  12.       <AnchorPane prefHeight="370.0" prefWidth="336.0">
  13.          <children>
  14.             <Button fx:id="btnPulsar" layoutX="142.0" layoutY="272.0" mnemonicParsing="false" onAction="#Pulsar" text="Pulsar" />
  15.          </children>
  16.       </AnchorPane>
  17.    </children>
  18. </AnchorPane>

En cuanto pongo ese onAction y lo intento ejecutar me da un error del constructor que es el siguiente:

javafx.fxml.LoadException: No controller specified.
/C:/Users/_Ivan_/workspace/Hola%20Mundo/bin/application/Hola_Mundo.fxml:14

at javafx.fxml.FXMLLoader.constructLoadException(Unkn own Source)
at javafx.fxml.FXMLLoader.access$100(Unknown Source)
at javafx.fxml.FXMLLoader$Element.getControllerMethod Handle(Unknown Source)
at javafx.fxml.FXMLLoader$Element.processEventHandler Attributes(Unknown Source)
at javafx.fxml.FXMLLoader$ValueElement.processEndElem ent(Unknown Source)
at javafx.fxml.FXMLLoader.processEndElement(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at application.Main.start(Main.java:29)
at com.sun.javafx.application.LauncherImpl.lambda$lau nchApplication1$163(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$run AndWait$176(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$nul l$174(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$run Later$175(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run( Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Nativ e Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$14 9(Unknown Source)
at java.lang.Thread.run(Unknown Source)


Y en el Main.java tengo lo siguiente:

Código Java:
Ver original
  1. package application;
  2.  
  3. import javafx.application.Application;
  4. import javafx.event.ActionEvent;
  5. import javafx.fxml.FXML;
  6. import javafx.fxml.FXMLLoader;
  7. import javafx.stage.Stage;
  8. import javafx.scene.Parent;
  9. import javafx.scene.Scene;
  10. import javafx.scene.control.Button;
  11. import javafx.scene.layout.BorderPane;
  12.  
  13.  
  14. public class Main extends Application {
  15.  
  16.     @FXML
  17.     private Button btnPulsar;
  18.  
  19.     @FXML
  20.     public  void Pulsar(ActionEvent Event)
  21.     {
  22.         btnPulsar.setText("Hola");
  23.     }
  24.  
  25.  
  26.     @Override
  27.     public void start(Stage primaryStage) {
  28.         try {
  29.             Parent parent = FXMLLoader.load(getClass().getResource("Hola_Mundo.fxml"));
  30.             Scene scene = new Scene(parent); primaryStage.setTitle("Hello World!");
  31.             primaryStage.setScene(scene);
  32.             primaryStage.show();
  33.         } catch(Exception e) {
  34.             e.printStackTrace();
  35.         }
  36.     }
  37.  
  38.     public static void main(String[] args) {
  39.         launch(args);
  40.     }
  41. }

No se como so

Etiquetas: constructor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:15.