Ich habe diesen Code, welches meckert, dass die Referenzierung vom statischen Kontext nicht geht. Ich habe versucht, um der Konstruktor ResizableCanvasPane statisch zu machen usw, but der Fehler bleibt. Vielleicht kann jemand mir eine Hilfsstellung geben?
Java:
public class ResizableCanvasPane extends Pane {
/* der Code geht um den Pane mit dem veränderbaren Große.
Deshalb werden zwei Variablen hier erstellt, um die veränderte Größe zu reflektieren
*/
private int widthChanged = 0;
private int heightChanged = 0;
private SimpleObjectProperty<Dimension2D> dimension2DSimpleDoubleProperty = new SimpleObjectProperty<>();
public ResizableCanvasPane(){
dimension2DSimpleDoubleProperty.addListener((observable, oldValue, newValue) -> {
HelloController.redraw();
});
widthProperty().addListener((observable, oldValue, newValue) -> {
widthChanged++;
checkRedraw();
});
heightProperty().addListener((observable, oldValue, newValue) -> {
heightChanged++;
checkRedraw();
});
//Leinwand mit dem veränderten Größe einfügen
ResizableCanvas canvas = new ResizableCanvas();
getChildren().add(canvas);
//Non-static method 'heightProperty()' cannot be referenced from a static context
ResizableCanvasPane.widthProperty().bind(widthProperty());
//Non-static method 'heightProperty()' cannot be referenced from a static context
ResizableCanvasPane.heightProperty().bind(heightProperty());
}
//bei Größeveränderung wird die checkRedraw() aufgerufen, um die dimension zu bestimmen
private void checkRedraw(){
if(widthChanged + heightChanged > 1){
widthChanged = 0;
heightChanged = 0;
Dimension2D dimension = new Dimension2D(getWidth(), getHeight());
dimension2DSimpleDoubleProperty.set(dimension);
}
}
public SimpleObjectProperty<Dimension2D> dimension2DSimpleObjectProperty(){
return dimension2DSimpleDoubleProperty;
}
}