javafxを初めて使って、とりあえず何か作ってみようと思って実行してみると、Label is not a valid type.とエラーが出ました。そこで調べてみると、Labelがimportされていないようだったので、importして実行してみると、今度は、ClassMotFoundExeptionが出てしまいまい、調べても英語の記事ばっかりで挫折してしまいました…
何のクラスが見つからないのか、どうやったら治せるか教えてください!
あと、fxmlではjavafx.scene.layout.*で、すべてのlayoutをimportしているはずなのに何故もう一回importしないといけないのかも教えていただけると嬉しいです!
発生している問題・エラーメッセージ
javafx.fxml.LoadException: /C:/zip-of-java/pleiades-2020-12-java-win-64bit-jre_20201222/pleiades/workspace/FXPractice/bin/application/ScheduleTable.fxml at javafx.fxml/javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2625) at javafx.fxml/javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2863) at javafx.fxml/javafx.fxml.FXMLLoader.processImport(FXMLLoader.java:2707) at javafx.fxml/javafx.fxml.FXMLLoader.processProcessingInstruction(FXMLLoader.java:2676) at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3237) at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3194) at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3163) at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3136) at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3113) at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3106) at FXPractice/application.Main.start(Main.java:15) at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) at java.base/java.security.AccessController.doPrivileged(Native Method) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: java.lang.ClassNotFoundException: javafx.scene.layout.Label at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) at javafx.fxml/javafx.fxml.FXMLLoader.loadTypeForPackage(FXMLLoader.java:2931) at javafx.fxml/javafx.fxml.FXMLLoader.loadType(FXMLLoader.java:2920) at javafx.fxml/javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2861) ... 20 more
該当のソースコード
java
1<?xml version="1.0" encoding="UTF-8"?> 2 3 4<?import javafx.geometry.*?> 5<?import javafx.scene.control.*?> 6<?import javafx.scene.layout.*?> 7<?import javafx.scene.layout.HBox?> 8<?import javafx.scene.layout.Label?> 9 10<HBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="700.0" prefWidth="700.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" xmlns:controller="/FXPractice/src/application/PleaseProvideControllerClassName.java"> 11 <children> 12 <VBox maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="700.0" prefWidth="100.0"> 13 <children> 14 <AnchorPane prefHeight="74.0" prefWidth="100.0"> 15 <children> 16 <Label layoutX="8.0" layoutY="6.0" prefHeight="17.0" prefWidth="36.0" text="Date" AnchorPane.leftAnchor="8.0" AnchorPane.topAnchor="6.0" /> 17 <CheckBox layoutX="25.0" layoutY="22.0" mnemonicParsing="false" text="CheckBox" AnchorPane.rightAnchor="1.0"> 18 <padding> 19 <Insets bottom="1.0" left="1.0" right="1.0" top="1.0" /> 20 </padding> 21 </CheckBox> 22 <CheckBox layoutX="26.0" layoutY="37.0" mnemonicParsing="false" text="CheckBox" AnchorPane.rightAnchor="1.0"> 23 <padding> 24 <Insets bottom="1.0" left="1.0" right="1.0" top="1.0" /> 25 </padding> 26 </CheckBox> 27 <CheckBox layoutX="26.0" layoutY="52.0" mnemonicParsing="false" text="CheckBox" AnchorPane.rightAnchor="1.0"> 28 <padding> 29 <Insets bottom="1.0" left="1.0" right="1.0" top="1.0" /> 30 </padding> 31 </CheckBox> 32 </children> 33 </AnchorPane> 34 <TableView prefHeight="480.0" prefWidth="100.0"> 35 <columns> 36 <TableColumn prefWidth="99.0" text="予定" /> 37 </columns> 38 </TableView> 39 <TextArea prefHeight="164.0" prefWidth="100.0"> 40 <VBox.margin> 41 <Insets /> 42 </VBox.margin> 43 </TextArea> 44 </children> 45 </VBox> 46 47 48 49 <Slider orientation="VERTICAL" /> 50 </children> 51</HBox> 52 53package application; 54
java
1package application; 2 3import javafx.application.Application; 4import javafx.stage.Stage; 5import javafx.scene.Scene; 6import javafx.scene.layout.BorderPane; 7 8 9public class Main extends Application { 10 @Override 11 public void start(Stage primaryStage) { 12 try { 13 BorderPane root = new BorderPane(); 14 Scene scene = new Scene(root,400,400); 15 scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); 16 primaryStage.setScene(scene); 17 primaryStage.show(); 18 } catch(Exception e) { 19 e.printStackTrace(); 20 } 21 } 22 23 public static void main(String[] args) { 24 launch(args); 25 } 26} 27
java
1package application; 2 3/** 4 * Sample Skeleton for 'ScheduleTable.fxml' Controller Class 5 */ 6 7import java.net.URL; 8import java.util.ResourceBundle; 9 10import javafx.fxml.FXML; 11 12public class PleaseProvideControllerClassName { 13 14 @FXML // ResourceBundle that was given to the FXMLLoader 15 private ResourceBundle resources; 16 17 @FXML // URL location of the FXML file that was given to the FXMLLoader 18 private URL location; 19 20 @FXML // This method is called by the FXMLLoader when initialization is complete 21 void initialize() { 22 23 } 24}
試したこと
・fxmlにLabelをimportする
・<!DOCTYPE configuration>を追加する
・Labelを削除してみる→今度はcheckboxで同様のエラーが起きた。
補足情報(FW/ツールのバージョンなど)
javaSE 11
JavaFX 11
回答2件
あなたの回答
tips
プレビュー