シェイプグラフには、四角形を作成するためのボタンとサークルを作成するボタンの2つのボタンがあります。移動するとシェイプオブジェクトの色が変わるスライダーもあります。形状もドラッグ可能です。残念ながら、カラースライダは私が望むようにはうまく動作しません。ボタンを使用して形状を作成し、その形状をマウスでクリックすると、スライダがドラッグされた場所に応じて形状の色が変わります(唯一の色は赤です)。カラーリングJavaFXシェイプ
問題は、私が望むように形を独立して色付けしたり色を再現することができないことです。長方形が最初に作成され、円が後に続く場合、円ではなく長方形に色付けできます。私は長方形に続く円の拳を作成した場合、私はサークル、その後、長方形を色付けすることができますが、再び円を選択すると、私は私が欠けているものを、非常にわからないか、それを
import javafx.application.Application;
import javafx.beans.value.ObservableValue;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Slider;
import javafx.stage.Stage;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Rectangle;
public class SquareRectangle extends Application
{
private Rectangle selectedRectangle;
private Circle selectedCircle;
private int red = 255;
private int green = 0;
private int blue = 0;
public static void main(String [] args)
{
launch(args);
}
public void start(Stage primaryStage)
{
Pane root = new Pane();
Scene scene = new Scene(root,800,800);
Button Rectangles = new Button("Rectangles");
Button Circles = new Button("Circles");
Slider ColorSlider = new Slider(0,255,0);
Circles.setLayoutX(90);
ColorSlider.setLayoutY(70);
Rectangles.setOnAction(e ->{
Rectangle rect = new Rectangle();
rect.setLayoutX(1080/2);
rect.setLayoutY(400);
rect.setOnMouseDragged(f ->{
rect.setX(f.getX());
rect.setY(f.getY());
});
rect.setOnMousePressed(g ->{
selectedRectangle = (Rectangle) g.getTarget();
});
root.getChildren().add(rect);
rect.setHeight(100);
rect.setWidth(200);
});
Circles.setOnAction(e ->{
Circle circle = new Circle(300,300,100);
circle.setLayoutX(200);
circle.setLayoutY(200);
circle.setOnMouseDragged(f ->{
circle.setCenterX(f.getX());
circle.setCenterY(f.getY());
});
circle.setOnMousePressed(g ->{
selectedCircle = (Circle) g.getTarget();
});
root.getChildren().add(circle);
});
ColorSlider.valueProperty().addListener(
(ObservableValue<? extends Number> ov,Number curVal, Number newVal)->{
if(selectedRectangle != null){
red = (int) ColorSlider.getValue();
selectedRectangle.setFill(Color.rgb(red,green,blue));
}
else if(selectedCircle != null && selectedRectangle == null){
red = (int) ColorSlider.getValue();
selectedCircle.setFill(Color.rgb(red,green,blue));
}
});
root.getChildren().addAll(Rectangles,Circles,ColorSlider);
primaryStage.setTitle("Shapes");
primaryStage.setScene(scene);
primaryStage.show();
}
}
を彩色することはできません間違っている?
ありがとうございます!私はいくつかのことを試みましたが、決してまったく打撃を受けませんでした。巨大なヘルプ – Treeno1