Olá a todos. Copiei este código para depois estudá-lo. Mas não consigo fazer com que ele encontre o arquivo fxml. Estou usando Notepad++7.5.6 , JDK 1.8.
classe main
Blockquote
import java.io.FileInputStream;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;
import javafx.fxml.FXMLLoader;
import javafx.scene.layout.Pane;
public class Principal extends Application {
public static void main(String[] args){
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
//Label label = new Label("Meu texto legar");
//Pane root = FXMLLoader.load(getClass().getResource("Layout2.fxml"));
/*FXMLLoader loader = new FXMLLoader();
loader.setClassLoader(getClass().getClassLoader());
loader.setLocation(getClass().getResource("/fxml/PluginFXML.fxml"));*/
FXMLLoader loader = new FXMLLoader();
String arquivo = "Layout2.fxml";
FileInputStream input = new FileInputStream(arquivo);
Pane root = (Pane) loader.load(input);
Scene scene = new Scene(root,850,400);
primaryStage.setScene(scene);
primaryStage.setTitle("Principal");
primaryStage.setMinWidth(600);
primaryStage.setMinHeight(400);
primaryStage.setMaxWidth(900);
primaryStage.setMaxHeight(600);
primaryStage.show();
}
}
Blockquote
classe Controller
Blockquote
import javafx.fxml.FXML;
public class Controller implements Initializable {
@FXML // public sem o @FXML
private void initialize(){
System.out.println("controller inicializado");
}
}
Blockquote
arquivo fxml
<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.Button?> <?import javafx.scene.control.Label?> <?import javafx.scene.control.Menu?> <?import javafx.scene.control.MenuBar?> <?import javafx.scene.control.MenuItem?> <?import javafx.scene.control.TableView?> <?import javafx.scene.control.TableColumn?> <?import javafx.scene.control.TextField?> <?import javafx.scene.control.TextArea?> <?import javafx.scene.layout.BorderPane?> <?import javafx.scene.layout.GridPane?> <?import javafx.scene.layout.HBox?> <?import javafx.geometry.Insets?>Blockquote
<left>
<GridPane hgap="5" vgap="5">
<padding>
<Insets top="5" bottom="5" left="5" right="5"/>
</padding>
<GridPane hgap="5" vgap="5">
<GridPane.margin>
<Insets top="5" bottom="5" left="5"/>
</GridPane.margin>
<Label text="Pesquisar:" GridPane.rowIndex="0" GridPane.columnIndex="0"/>
<TextField GridPane.rowIndex="0" GridPane.columnIndex="1" GridPane.hgrow="ALWAYS"/>
<HBox GridPane.rowIndex="1" GridPane.columnIndex="1" alignment="CENTER_RIGHT" spacing="5">
<Button text="Pesquisar" prefWidth="80"/>
<Button text="Limpar" prefWidth="80"/>
</HBox>
</GridPane>
<TableView GridPane.rowIndex="1" GridPane.columnIndex="0" GridPane.vgrow="ALWAYS">
<columns>
<TableColumn text="Site/Serviço" prefWidth="120"/>
<TableColumn text="Login" prefWidth="120"/>
</columns>
</TableView>
<HBox GridPane.rowIndex="2" GridPane.columnIndex="0" alignment="CENTER_RIGHT" spacing="5">
<Button text="Novo" prefWidth="80"/>
<Button text="Editar" prefWidth="80"/>
<Button text="Excluir" prefWidth="80"/>
</HBox>
</GridPane>
</left>
<center>
<GridPane hgap="5" vgap="5">
<padding>
<Insets top="5" bottom="5" left="5" right="15"/>
</padding>
<Label text="Site/Serviço:" GridPane.rowIndex="0" GridPane.columnIndex="0"/>
<TextField GridPane.rowIndex="0" GridPane.columnIndex="1" GridPane.hgrow="ALWAYS"/>
<Label text="Login:" GridPane.rowIndex="1" GridPane.columnIndex="0"/>
<TextField GridPane.rowIndex="1" GridPane.columnIndex="1" GridPane.hgrow="ALWAYS"/>
<Label text="Senha:" GridPane.rowIndex="2" GridPane.columnIndex="0"/>
<TextField GridPane.rowIndex="2" GridPane.columnIndex="1" GridPane.hgrow="ALWAYS"/>
<Label text="Observações:" GridPane.rowIndex="3" GridPane.columnIndex="0"/>
<TextArea GridPane.rowIndex="3" GridPane.columnIndex="1" GridPane.hgrow="ALWAYS"/>
<HBox GridPane.rowIndex="4" GridPane.columnIndex="0" GridPane.columnSpan="2" alignment="CENTER_RIGHT" spacing="5">
<Button text="Confirmar" prefWidth="80"/>
<Button text="Cancelar" prefWidth="80"/>
</HBox>
</GridPane>
</center>
> Blockquote
o erro
Blockquote
C:\pastaFx>java FxFXMLExample3
Exception in Application start method
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(Lau
ncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImp
l.java:328)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherIm
pl.java:917)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$154(
LauncherImpl.java:182)
at java.lang.Thread.run(Unknown Source)
Caused by: javafx.fxml.LoadException:
unknown path:7
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.access$700(FXMLLoader.java:103)
at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:
- at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FX
MLLoader.java:971)
at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:22 -
at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.ja
va:744)
at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2425)
at FxFXMLExample3.start(FxFXMLExample3.java:27)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$161
(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$174(Platfor
mImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.
java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformI
mpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatch
er.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.ja
va:177)
… 1 more
Caused by: java.lang.ClassNotFoundException: FXFXML.FxFXMLController
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:
920)
… 16 more
Exception running application FxFXMLExample3
C:\pastaFx>
Blockquote
O arquivo está na pasta citada. Já tentei copiar outros exemplos. Mas dá o mesmo erro. Podem me ajudar?