矩形JavaFx更改颜色动态
我正在实现一个用于绘制矩形的应用程序,但现在我需要帮助来更改矩形的颜色,我有以下实现:矩形JavaFx更改颜色动态,javafx,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)
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();
}
现在我想做一个值的叠加,像矩阵乘法一样改变我的矩形颜色,所以我在我的代码中迷失了,因为当我创建矩形时,我有很多对象的实例,在同一个窗格中,我有三个矩形的正方形,我怎么能改变x,y的颜色,就像一个数字一样?我如何用其他尺寸调整图像的大小 嗯。。关于矩形的定位逻辑,你应该计算它。如果你知道数学逻辑,你就能解决它。毕竟,我们是来处理语言本身的 关于如何将矩形从点A移动到点B,可以使用JavaFX动画库。如果您不知道,请查看了解动画。请充分利用并查看链接中提到的所有类的JavaFX文档。阅读每一篇文章以获得更好的理解 注意:如果您还是新手,或者从其他来源学习过JavaFX,那么您可以在上学到很多关于JavaFX2.x的知识。但我想你已经知道了,对吧 嗯。。关于JavaFX中的颜色动画,有一个很好的例子说明了如何在名为。您可以在下面提到JavaFX示例演示和下载的部分找到它 此外,请记住,JavaFX动画库主要用于创建动画,并允许您创建任何类型的动画。您可以为某些端点设置自己的JavaFX属性,然后按照您想要的方式设置它们的动画。在视频中演示的动画平移中,可以使用单个时间线对象来执行所有矩形的移动,以及每个矩形颜色的更改 若要调整图元的所需运动,请使用节点类中的现有layoutXY特性。不要放置任何具有translateXY特性的对象,因为这些特性用于对节点对象位置进行小的最终调整。layoutXY特性是定义固定位置的特性。定义layoutXY时,可能会在程序中使用过渡动画,精确处理节点对象的translateXY属性。这就是使用LayoutXY进行定位的原因 有了你的程序逻辑、数学和我给你的提示,我相信你可以轻松解决你的问题。如果你对某事还有疑问,请不要害羞地问。我最终的目的是帮助你
祝你的项目好运 我不太了解你的问题。。。当事件发生时,您会尝试动态更改矩形的颜色吗?也许你应该看看rgb静态类的颜色方法。您可以通过更好的控制选择所需的颜色范围。了解一点数学知识,您可以在生成矩形时计算所需的颜色。我不知道这是否正是你想要的。如果您有问题,或者这对您没有帮助,请在此处发表评论,我将尝试其他选择。您好,感谢您对我的问题的关注,我的问题是演示一个矩阵乘法,根据我发布的代码,我需要获取矩阵A x矩阵B=矩阵C,我希望输入执行时间线[0]在带有红色的矩阵A中,同时在带有红色的矩阵B列[0]中。将带有红色的矩阵C放置在[0,0]位置…并使其成为我的所有矩形,但在动画期间使用其他颜色。在我的代码中,我使用的是颜色类..xD