by Anonymous » 12 Mar 2025, 14:17
Ich teste ControlSFX GridView, aber ich erhalte nullpointerexception und kann keine Möglichkeit finden, es zu beheben.
org.controlsfx
controlsfx
11.1.1
< /code>
Code: < /p>
public class NewMain extends Application {
@Override
public void start(Stage primaryStage) {
ObservableList data = FXCollections.observableArrayList(
List.of("Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6", "Item 7", "Item 8"));
GridView gridView = new GridView(data);
gridView.setCellFactory(new Callback() {
@Override
public GridCell call(GridView arg0) {
return new GridCell() {
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText(null);
} else {
setText(item);
}
}
};
}
});
Scene scene = new Scene(gridView, 600, 400);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
< /code>
Ergebnis: < /p>
Caused by: java.lang.NullPointerException: Cannot invoke "javafx.scene.control.IndexedCell.updateIndex(int)" because "" is null
at javafx.controls@21/javafx.scene.control.skin.VirtualFlow.setCellIndex(VirtualFlow.java:1812)
at javafx.controls@21/javafx.scene.control.skin.VirtualFlow.getCell(VirtualFlow.java:1796)
at javafx.controls@21/javafx.scene.control.skin.VirtualFlow.getOrCreateCellSize(VirtualFlow.java:3068)
at javafx.controls@21/
...
< /code>
Könnte jemand sagen, wie man es behebt? Jede Hilfe wird sehr geschätzt.
Ich teste ControlSFX GridView, aber ich erhalte nullpointerexception und kann keine Möglichkeit finden, es zu beheben.
org.controlsfx
controlsfx
11.1.1
< /code>
Code: < /p>
public class NewMain extends Application {
@Override
public void start(Stage primaryStage) {
ObservableList data = FXCollections.observableArrayList(
List.of("Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6", "Item 7", "Item 8"));
GridView gridView = new GridView(data);
gridView.setCellFactory(new Callback() {
@Override
public GridCell call(GridView arg0) {
return new GridCell() {
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText(null);
} else {
setText(item);
}
}
};
}
});
Scene scene = new Scene(gridView, 600, 400);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
< /code>
Ergebnis: < /p>
Caused by: java.lang.NullPointerException: Cannot invoke "javafx.scene.control.IndexedCell.updateIndex(int)" because "" is null
at javafx.controls@21/javafx.scene.control.skin.VirtualFlow.setCellIndex(VirtualFlow.java:1812)
at javafx.controls@21/javafx.scene.control.skin.VirtualFlow.getCell(VirtualFlow.java:1796)
at javafx.controls@21/javafx.scene.control.skin.VirtualFlow.getOrCreateCellSize(VirtualFlow.java:3068)
at javafx.controls@21/
...
< /code>
Könnte jemand sagen, wie man es behebt? Jede Hilfe wird sehr geschätzt.