到目前爲止,我嘗試了很多不同的事情來完成這項工作。我似乎無法理解爲什麼這不應該起作用。 我有一個叫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