Hallo,
ich bin grad dabei JavaFX anzutesten und habe folgende kleine Anwendung um eine TableView zu nutzen.
[XML]<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="scenebuildertest_01.FXMLDocumentController">
<center>
<TableView id="playerTable" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<columns>
<TableColumn id="name" prefWidth="167.0" text="Name" />
<TableColumn id="number" minWidth="0.0" prefWidth="71.0" text="Number" />
<TableColumn id="column" prefWidth="361.0" text="Country" />
</columns>
</TableView>
</center>
</BorderPane>[/XML]
Ich bekomme beim start der Anwendung während initialisierung des Controllers immer eine NullpointerException, wenn ich auf die Table oder die TableColumns zugreifen will. Hat einer eine Ahnung was ich falsch mache?
Grüße
ich bin grad dabei JavaFX anzutesten und habe folgende kleine Anwendung um eine TableView zu nutzen.
[XML]<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="scenebuildertest_01.FXMLDocumentController">
<center>
<TableView id="playerTable" prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<columns>
<TableColumn id="name" prefWidth="167.0" text="Name" />
<TableColumn id="number" minWidth="0.0" prefWidth="71.0" text="Number" />
<TableColumn id="column" prefWidth="361.0" text="Country" />
</columns>
</TableView>
</center>
</BorderPane>[/XML]
Java:
public class FXMLDocumentController implements Initializable {
@FXML
private TableView<Player> playerTable;
@FXML
private TableColumn<Player, String> name;
@FXML
private TableColumn<Player, String> number;
@FXML
private TableColumn<Player, String> country;
@Override
public void initialize(URL url, ResourceBundle rb) {
System.out.println(getClass().getName() + ": inizialize application");
name.setCellValueFactory(new PropertyValueFactory<Player, String>("name"));
number.setCellValueFactory(new PropertyValueFactory<Player, String>("number"));
country.setCellValueFactory(new PropertyValueFactory<Player, String>("country"));
final List<Player> players = new ArrayList<Player>();
players.add(new Player("Ich", "Du", "Er"));
playerTable.setItems(FXCollections.observableList(players));
}
}
Java:
public class SceneBuilderTest_01 extends Application {
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("SceneBuilderTest.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
Ich bekomme beim start der Anwendung während initialisierung des Controllers immer eine NullpointerException, wenn ich auf die Table oder die TableColumns zugreifen will. Hat einer eine Ahnung was ich falsch mache?
Grüße