我實現一個應用程序來繪製矩形,但現在我需要幫助改變我的矩形的顏色,我有這樣實現:矩形了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 –