これまでは、この作業を行うためにさまざまなことを試みました。なぜこれがうまくいかないのか分かりません。 私は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); //このメソッドは、メッセージが受信されると自動的にトリガされます。 Channelは、新しいメッセージごとに変化するint値です。 } – Bram