2016-06-12 8 views
0

私はFXMLとその構文が新しく、そのために私はthis トピックに関するいくつかの調査を行っています。Java FXMLプロジェクトを実行しているときの例外(アプリケーションの開始メソッドの例外)

図4-2のすべてを指定したとおりに実行しましたが(NetBeansの代わりにEclipseを使用していることを除いて)、一度プロジェクトを実行するとコンソールに表示されます。

Exception in Application start method 

ステージやそのコンポーネントは表示されません。

また、このウィンドウが表示さ: enter image description here

私はインターネット上でいくつかの研究を行ってきたと私はこのトピックについての情報を見つけることができませんでした。 StackOverFlowについての質問はありますが、問題の原因は同じではありません。

FXMLTableView.java(mainメソッド):

package application; 

public class FXMLTableView extends Application{ 

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

@Override 
public void start(Stage primaryStage) throws Exception { 

    Pane root = (Pane) FXMLLoader.load(getClass().getResource("fxml_tableview.fxml")); 

    primaryStage.setTitle("This is a title"); 
    primaryStage.setScene(new Scene(root, 400, 400)); 
    primaryStage.show(); 

    } 
} 

fxml_tableview.fxml

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

<?import javafx.scene.layout.AnchorPane?> 

<GridPane alignment="CENTER" hgap="10.0" vgap="10.0" 
    xmlns:fx="http://javafx.com/fxml" 
    fx:controller="fxmltableview.FXMLTableViewController"> 
    <padding> 
     <Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/> 
    </padding> 
    <Label style="-fx-font: NORMAL 20 Tahoma;" text="Address Book"     
     GridPane.columnIndex="0" GridPane.rowIndex="0"> 
    </Label> 
    <TableView fx:id="tableView" GridPane.columnIndex="0" 
     GridPane.rowIndex="1"> 
    </TableView> 
</GridPane> 

私はそれは私がまだそれを使用する必要はありませんので、それは、FXMLTableViewControllerを表示する必要はないと思うし、そのため実際には空ですが、ちょうどの場合:

package application; 

public class FXMLTableViewController { 

} 

事前に感謝!

+2

この例外に関する追加情報はありますか?それ以外の場合は、fxmlファイルが見つからないと思われます。指定されたpathStringが正しいと確信していますか? – n247s

+0

@ n247sすべてのファイルは同じパッケージに入っています。私が知る限り問題はありません。 これで、あなたにも尋ねるウィンドウがあります。それを質問に追加します。 – SpaceCore186

+0

同じプロジェクトかもしれませんが、あなたのxmlファイルが 'resource'フォルダにない場合、ファイルは見つかりません。さらに、ファイルがリソースフォルダに直接配置されていない場合は、完全なパスを指定する必要があります。 (例: "myFXMLFilesFolder/fxml_tableview.fxml") – n247s

答えて

0

SOLVED

問題は、FXMLファイルで使用している各クラスのライブラリをインポートしていないためです。

<?import javafx.geometry.Insets?> 
<?import javafx.scene.control.*?> 
<?import javafx.scene.layout.*?> 

<GridPane alignment="CENTER" hgap="10.0" vgap="10.0" 
    xmlns:fx="http://javafx.com/fxml" 
    fx:controller="fxmltableview.FXMLTableViewController"> 
    <padding> 
     <Insets bottom="10.0" left="10.0" right="10.0" top="10.0"/> 
    </padding> 
    <Label style="-fx-font: NORMAL 20 Tahoma;" text="Address Book"     
    GridPane.columnIndex="0" GridPane.rowIndex="0"> 
    </Label> 
    <TableView fx:id="tableView" GridPane.columnIndex="0" 
     GridPane.rowIndex="1"> 
    </TableView> 
</GridPane> 

助けをn247s感謝:@

これは、それがために持っているかです。

関連する問題