До сих пор я пробовал так много разных вещей, чтобы заставить эту работу. Я не могу понять, почему это не должно работать. У меня есть класс под названием StatusRect.java
. Этот класс возвращает прямоугольник, когда новый объект создается с помощью метода makeRectangleStatus
. Идея состоит в том, чтобы раскрашивать этот прямоугольник каждый раз, когда целое число становится определенным значением. В классе StatusRect.java
метод changeIntFlag
вызывается из другого класса. Здесь изменяется целое число. Это работает.
Теперь я просто хочу, чтобы цвет прямоугольника изменился в этом классе StatusRect.java
. Главный вопрос заключается в том, можно ли задать этот цвет внутри этого класса StatusRect.java
или это можно сделать только вне этого класса? Прямоугольный объект создается в Stage
приложения, как показано ниже. Там в качестве параметра задан цвет red
. Любая помощь здесь очень ценится.
public void start(Stage stage) throws Exception {
Rectangle rec = new StatusRect().makeRectangleStatus(50, 700, 20, 20, "red", "black", "btnObj1", 7, 0);
}
Класс StatusRect:
public class StatusRect {
private String ColorStatusOn;
private String ColorStatusOff;
private int IntFlag;
Rectangle rec = new Rectangle();
public Rectangle makeRectangleStatus (double x, double y, double Witdh, double Height, String ColorStatOn, String ColorStatOff, String BtnId, int SetIntStatus, int Current){
rec.setLayoutX(x);
rec.setLayoutY(y);
rec.setWidth(Witdh);
rec.setHeight(Height);
ColorStatusOn = ColorStatOn;
return rec;
}
public void changeIntFlag(int iEnabled) {
if(IntFlag == iEnabled) return;
IntFlag = iEnabled;
System.out.println("VALUE CHANGED!!!: " + IntFlag);
if (IntFlag == 7){
//this is being triggerd every time the int Flag value becomes "7"
System.out.println("SAME NUMBER: SET COLOR RECTANGLE TO red");
//Why doesnt the color change here??
rec.setStyle("-fx-fill:" + ColorStatusOn);
}
}
}
}
changeIntFlag(...)
)? - person James_D   schedule 30.11.2016