到目前为止,我尝试了很多不同的事情来完成这项工作。我似乎无法理解为什么这不应该起作用。 我有一个叫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(...)')? –
@James: public void send(MidiMessage InputMsg,long timeStamp){ new StatusRect()。changeIntFlag(Channel); //当收到消息时,此方法会自动触发。频道是随着每条新消息而变化的整数值。 } – Bram