0
javafxで丸い角を描いた単純な四角形をマウスのドラッグ中に描画しようとしています。 最初の問題:左上隅を丸くすることはできません。 2番目の問題:私のアプリケーションは、私の写真の2番目のものとは違う、すてきな丸い四角形を描くことができるようにしたい。 どうすればこれらを修正できますか? ご協力いただきありがとうございます。ここドラッグ中に丸みを帯びた四角形を描く
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.BorderPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
public void start(Stage stage){
stage.setTitle("Test");
root = new BorderPane();
Scene scene = new Scene(root, 400, 400);
paintings = new Group();
stage.setScene(scene);
canvas = new Rectangle(0, 0, stage.getScene().getWidth(), stage.getScene().getHeight());
canvas.setFill(Color.WHITE);
addHandlers();
root.setCenter(canvas);
root.getChildren().add(paintings);
stage.show();
}
private void paintRectangle(){
roundedRect = new Rectangle(pressedX,
pressedY,
draggedX - pressedX,
draggedY - pressedY);
roundedRect.setFill(Color.RED);
roundedRect.setArcHeight(40);
roundedRect.setArcWidth(40);
paintings.getChildren().add(roundedRect);
}
private void addHandlers(){
canvas.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent me) {
pressedX = me.getX();
pressedY = me.getY();
}
});
canvas.setOnMouseReleased(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent me) {
/* If I make the drawing in here, I get round corners, but it doesn't get drawn while dragging*/
//paintRectangle();
}
});
canvas.setOnMouseDragged(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent me) {
draggedX = me.getX();
draggedY = me.getY();
paintRectangle();
}
});
}
double pressedX, pressedY;
double draggedX, draggedY;
Rectangle canvas;
Group paintings;
Rectangle roundedRect;
BorderPane root;
}
そして、私の絵です:
ありがとうございました。それは働いています(矩形と円の場合)が、ポリゴンに含まれる各頂点のプロパティを持たないため、ポリゴンには機能しません。ポリゴンポイントをバインドする方法も知っていますか?ありがとうございました。 –
丸い角と曲線のパスを持つ複雑な形状の@Carmenでは、SVGPathを使用する必要があります。 [ここ](http://www.w3.org/TR/SVG/paths.html)を参照してください。 –