私は非常に新しいJavaFXです。昨日学習を開始しました。ドキュメントを読んで1日中読んだり、何も学んだりできませんでした。JavaFXでのノード選択の実装方法
ここでは、円を作成する簡単なJavaFXアプリケーションを作成します。クリックすると、そのストロークがオレンジ色(何色か)に変わります。 unlicked(その円以外のものをクリック)で、ストロークが白く(何らかの色に)変わります。
ここに私の疑似コードこれまで私が持っていたものです。 円を作成し、イベント(重要)を処理する別のクラスを作成したいと思います。
public class Something extends Application {
@Override
public void start(Stage primaryStage) {
MyCircle c1 = new MyCircle();
c1.setCircle(20, 0, 0);
TilePane root = new TilePane();
root.getChildren().add(c1.getCircle());
//Some kind of mouse event listener, not sure which one should be
c1.getCircle().addEventListener(); //pseudo code
Scene scene = new Scene(root, 400, 400);
primaryStage.setTitle("Circle");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
このサークルを作成して、マウスのクリック、マウスの位置、クリックして、そのようなドラッグやもの、などのすべてのイベントを、処理する必要がありますクラス。
public class MyCircle implements EventHandler{
Circle circle = new Circle();
public void setCircle(int radius, int x, int y){
circle.setRadius(radius);
position(x,y);
circle.setStrokeWidth(3);
circle.setStroke(Color.valueOf("white"));
}
public Circle getCircle(){
return circle;
}
public void position(int x, int y){
circle.setTranslateX(x);
circle.setTranslateY(y);
}
public void selected(){
circle.setStroke(Color.valueOf("orange"));
}
public void unselected() {
circle.setStroke(Color.valueOf("white"));
}
@Override
public void handle(Event event) {
if (event == MOUSE_CLICKED){ //pseudo code
selected();
}
else if(event == MOUSE_UNCLICKED){ //pseudo code
unselected();
}
}
}
私はJavaFXの新機能を使用しています。ありがとう!
EDIT:これは私の擬似コードである、と私は、実際の作業コードに変換します。どうすればいいのか分かりません。どんな助けもありがとう。
ANOTHER EDIT:すべては3マークした場所を除いてコードです。私のコメントPsuedo Code
をコード内で探してください。そこで、擬似コードを実際のコードに変更するのに役立つ必要があります。
問題は何ですか?あなたはコードの説明が必要ですか? –
@BoHalim、その擬似コード、私は動作する方法でそれを書いてください。 –
意味、私はこの擬似コードを実際の作業コードに変えたいと思います。どうすればいいのか分かりません。 –