質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

1320閲覧

JavaFXのサンプルプログラムで例外エラーが発生する

soredekimarija

総合スコア3

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2021/04/16 11:04

前提・実現したいこと

教材を用いて、JavaFXのプログラミングを行なっているのですが、
サンプルプログラムを書き、実行しようとしても例外エラーが発生してしまいます。

使用している環境がEclipse IDEで教材の推奨がEclipse Mars 4.5なので、それが原因かとも思うのですが、、なんとか現在の環境で動かせないかと色々調査しているところなのですが、、
自分自身プログラミング初心者ということもあり、調査してみても一向にエラーが改善されません。

エラー文とプログラムを見ていただき、解決のヒントだけでも教えていただけないでしょうか。。

お手数をおかけして大変申し訳ありません、よろしくお願いします。

発生している問題・エラーメッセージ

Exception in Application start method java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389) at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) Caused by: java.lang.RuntimeException: Exception in Application start method at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$159(LauncherImpl.java:182) at java.lang.Thread.run(Thread.java:748) Caused by: javafx.fxml.LoadException: at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2504) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104) at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097) at jp.tuyano.eclipsebook.SampleApp.start(SampleApp.java:17) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$166(LauncherImpl.java:863) at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$179(PlatformImpl.java:326) at com.sun.javafx.application.PlatformImpl.lambda$null$177(PlatformImpl.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl.lambda$runLater$178(PlatformImpl.java:294) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,21] Message: 疑似属性名が必要です。 at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.setInputSource(XMLStreamReaderImpl.java:214) at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.<init>(XMLStreamReaderImpl.java:184) at com.sun.xml.internal.stream.XMLInputFactoryImpl.getXMLStreamReaderImpl(XMLInputFactoryImpl.java:262) at com.sun.xml.internal.stream.XMLInputFactoryImpl.createXMLStreamReader(XMLInputFactoryImpl.java:134) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2478) ... 14 more Exception running application jp.tuyano.eclipsebook.SampleApp

該当のソースコード

SanpleApp.java

1package jp.tuyano.eclipsebook; 2 3import javafx.application.Application; 4import javafx.fxml.FXMLLoader; 5import javafx.scene.control.Label; 6import javafx.scene.control.Button; 7import javafx.scene.control.TextField; 8import javafx.scene.layout.BorderPane; 9import javafx.scene.Parent; 10import javafx.scene.Scene; 11import javafx.stage.Stage; 12 13public class SampleApp extends Application { 14 15 @Override 16 public void start(Stage stage) throws Exception { 17 Parent root = FXMLLoader.load(getClass().getResource("window.fxml")); 18 // ウィンドウに組み込む内容(pane、幅、高さ) 19 Scene scene = new Scene(root, 300, 150); 20 // 設定したSceneをstageに組み込む 21 stage.setScene(scene); 22 // ウィンドウを開く 23 stage.show(); 24 } 25 26 public static void main(String[] args) { 27 // TODO 自動生成されたメソッド・スタブ 28 // Applicationのインスタンスを作成し 29 // それをアプリケーションとして実行 30 launch(args); 31 } 32} 33

window.fxml

1<?xml version="1.0" encording="UTF-8"?> 2<?import javafx.scene.control.*?> 3<?import javafx.scene.layout.*?> 4 5<BorderPane prefHeight="150.0" preWidth="300.0" 6 xmlns="http://javafx.com/javafx/8" 7 xmlns:fx="http://javafx.com/fxml/1"> 8 <top> 9 <Label text="this is FXML sample!" BorderPane.alignment="CENTER" /> 10 </top> 11 <center> 12 <TextField BorderPane.alignment="CENTER" /> 13 </center> 14 <bottom> 15 <Button text="Click" BorderPane.alignment="CENTER" /> 16 </bottom> 17</BorderPane>

試したこと

e(fx)clipse IDEのインストール、設定
設定からコンパイラー準拠レベルの変更(11→1.8)
プロジェクト、クラスの再作成

補足情報(FW/ツールのバージョンなど)

使用したJRE JavaSE-1.8
教材内で使用されているJRE jdk 1.8.0_45

使用環境 Eclipse IDE
教材推奨環境 Eclipse Mars 4.5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

エラーメッセージから原因を手繰れそうですね。
エラーメッセージはスタック構造なのでプログラムの実行順で言えば、下から上に積み重なっています。

まず、プログラムの実行上最初に発生しているエラー(例外)は、メッセージの下にある次です。

Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,21] Message: 疑似属性名が必要です。 at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.setInputSource(XMLStreamReaderImpl.java:214)

XMLの読み込み時にXMLStreamException例外が発生しており、XMLファイルの1行目、21桁目にその原因があると書かれています。

XMLファイルは、ここではFXMLなので、FXMLファイルの1行目、21桁目からの記述を確認してエラー原因を探索してみてください。

xml

1<?xml version="1.0" encording="UTF-8"?> 2

投稿2021/04/17 00:57

編集2021/04/17 00:59
boochnich

総合スコア194

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

soredekimarija

2021/04/21 07:25

教えていただきありがとうございます! 下からエラー文を確認していくと、いくつかタイプミスなど細かいミスが見つかり、エラー解消できました! 以降も参考にしたいと思います。 回答遅くなり申し訳ありません。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問