我实现一个应用程序来绘制矩形,但现在我需要帮助改变我的矩形的颜色,我有这样实现:矩形了JavaFx更改颜色的动态
Pane root = new Pane();
int qtd = 10;
NumberBinding rectsAreaSize = Bindings.min(root.heightProperty(), root.widthProperty());
Text texto = new Text("Matriz C");
texto.setUnderline(true);
texto.setLayoutX(150);
texto.setLayoutY(400);
for (int x = 8; x < qtd + 8; x++) {
for (int y = 8; y < qtd + 8; y++) {
Rectangle retangulo3 = new Rectangle();
retangulo3.setStrokeWidth(2);
retangulo3.setStroke(Color.BLACK);
retangulo3.xProperty().bind(rectsAreaSize.multiply(x).divide(qtd * 2.5));
retangulo3.yProperty().bind(rectsAreaSize.multiply(y).divide(qtd * 2.5));
retangulo3.heightProperty().bind(rectsAreaSize.divide(qtd * 2.5));
retangulo3.widthProperty().bind(retangulo3.heightProperty());
retangulo3.setFill(Color.GREENYELLOW);
root.getChildren().add(retangulo3);
}
}
root.getChildren().add(texto);
Text texto1 = new Text("Matriz A");
texto1.setUnderline(true);
texto1.setLayoutX(1200);
texto1.setLayoutY(200);
for (int x = 30; x < qtd + 30; x++) {
for (int y = 2; y < qtd + 2; y++) {
Rectangle retangulo1 = new Rectangle();
retangulo1.setStrokeWidth(2);
retangulo1.setStroke(Color.BLACK);
retangulo1.xProperty().bind(rectsAreaSize.multiply(x).divide(qtd * 2.5));
retangulo1.yProperty().bind(rectsAreaSize.multiply(y).divide(qtd * 2.5));
//retangulo.setHeight(10);
//retangulo.setWidth(10);
retangulo1.heightProperty().bind(rectsAreaSize.divide(qtd * 2.5));
retangulo1.widthProperty().bind(retangulo1.heightProperty());
retangulo1.setFill(Color.WHITE);
root.getChildren().add(retangulo1);
}
}
root.getChildren().add(texto1);
Text texto2 = new Text("Matriz B");
texto2.setUnderline(true);
texto2.setLayoutX(1200);
texto2.setLayoutY(500);
for (int x = 30; x < qtd + 30; x++) {
for (int y = 13; y < qtd + 13; y++) {
Rectangle retangulo2 = new Rectangle();
retangulo2.setStrokeWidth(2);
retangulo2.setStroke(Color.BLACK);
retangulo2.xProperty().bind(rectsAreaSize.multiply(x).divide(qtd * 2.5));
retangulo2.yProperty().bind(rectsAreaSize.multiply(y).divide(qtd * 2.5));
//retangulo.setHeight(10);
//retangulo.setWidth(10);
retangulo2.heightProperty().bind(rectsAreaSize.divide(qtd * 2.5));
retangulo2.widthProperty().bind(retangulo2.heightProperty());
retangulo2.setFill(Color.WHITE);
root.getChildren().add(retangulo2);
}
}
root.getChildren().add(texto2);
palco.setScene(new Scene(root, 100, 100));
palco.show();
}
现在我想打一个值superinduce和改变我的矩形颜色像矩阵乘法,所以我迷失在我的代码中,因为当我创建矩形时,我有很多对象的实例,在同一个窗格中,我有三个矩形的矩形,我怎样才能改变颜色(x,y)像一个动态的东西?我怎么能用另一个尺寸来调整我的形象?
我不明白你的问题很好......你会试图动态改变你的矩形的颜色作为一个事件发生?也许你应该看看rgb类的Color类的静态方法。您将可以通过更好的控制选择您想要的颜色范围。知道一点数学,你可以计算所需的颜色,因为你的矩形产生。我不知道这是不是你想要的。如果您有任何问题或者这对您没有帮助,请在这里留言,我会尝试其他选择。 – Loa
嗨,感谢您关注我的问题,以及我的问题是ilustrate一个矩阵乘法,根据我的发布的代码我需要得到矩阵A x矩阵B =矩阵C,并且我想在矩阵A中执行时间线[0]与红色和同一时间矩阵B列[0]与红色也是更多..输入在矩阵C位置[0,0]与红色...并使它对我所有的矩形,但与另一种颜色沿着动画的时间。 –
在我的代码中,我使用颜色类..xD –