我创建了一个在构造函数中创建带参数的网格的类。但是,我想更改使用滑块的网格的行数(或大小)。我设法创建一个滑块,将值打印到控制台。现在我想从滑块分配值来更改网格,但它不起作用。这是主要的课程。
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
Pane root = new Pane();
final Slider sliderSize = new Slider(0, 20, 5);
sliderSize.setShowTickMarks(true);
sliderSize.setShowTickLabels(true);
sliderSize.setMajorTickUnit(5);
root.getChildren().add(sliderSize);
sliderSize.valueProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> ov,
Number old_val, Number new_val) {
Grid a = new Grid(root, 100, 100, 10, (int) new_val);
}
});
Scene scene = new Scene(root, 500, 500);
primaryStage.setTitle("Grid");
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
这是Grid类。
public class Grid {
public Grid(Pane root, int xp, int yp, int width, int numberOfLines) {
for (int j = 0; j <= numberOfLines; j++) {
Line line = new Line();
line.setStartX(xp);
line.setStartY(yp + width * j);
line.setEndX(xp + width * numberOfLines);
line.setEndY(yp + width * j);
line.setStroke(Color.BLACK);
root.getChildren().add(line);
}
for (int j = 0; j <= numberOfLines; j++) {
Line line = new Line();
line.setStartX(xp + width * j);
line.setStartY(yp);
line.setEndX(xp + width * j);
line.setEndY(yp + width * numberOfLines);
line.setStroke(Color.BLACK);
root.getChildren().add(line);
}
}
}