JavaFx实现椭圆、直线、画弧

效果图

在这里插入图片描述
代码:

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Arc;
import javafx.scene.shape.ArcType;
import javafx.scene.shape.Ellipse;
import javafx.scene.shape.Line;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class Chapter_14_3 extends Application {
    public static void main(String[] args) {
        launch();
    }
    @Override
    public void start(Stage primaryStage) throws Exception {
        Group rootNode = new Group();

        //椭圆
        //前两个参数表示在面板中的位置 200表示x轴,100表示的y轴,
        //后两个参数表示椭圆的长轴与短轴
        Ellipse ellipse = new Ellipse(200,100,100,30);
        ellipse.setStroke(Color.BLACK);
        ellipse.setFill(Color.WHITE);
        ellipse.setStrokeWidth(2);

        //弧线
        //前两个参数表示位置
        //紧接着两个参数表示弧线长轴与短轴(可以使用Arc画椭圆)
        //最后两个参数表示弧线的起始角度,与覆盖角度
        Arc arc = new Arc(200,200,100,40,180,180);
        arc.setFill(Color.WHITE);//设置填充颜色
        arc.setStroke(Color.BLACK);//设置画笔颜色
        arc.setType(ArcType.ROUND);
        arc.setStrokeWidth(2);//设置画笔宽度

        //直线--左
        Line linel = new Line(100,100,100,200);
        linel.setFill(Color.WHITE);
        linel.setStroke(Color.BLACK);
        linel.setStrokeWidth(2);

        //直线--右
        Line liner = new Line(300,100,300,200);
        liner.setFill(Color.WHITE);
        liner.setStroke(Color.BLACK);
        liner.setStrokeWidth(2);

        //文字--中
        Text text = new Text("数据库");
        text.setX(180);
        text.setY(160);

        rootNode.getChildren().setAll(ellipse,arc,linel,liner,text);

        Scene scene = new Scene(rootNode,400,400);

        primaryStage.setScene(scene);
        primaryStage.show();
    }
}


  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在JavaFX实现板擦除功能可以通过以下步骤来实现: 首先,创建一个JavaFX板对象来支持绘图和擦除功能。板可以通过Canvas类来创建。 然后,设置板的大小和背景颜色,以及添加到JavaFX的场景中显示出来。 接着,定义一个变量来表示是否正在绘制(即鼠标按下时)或者擦除(即按住Ctrl键时鼠标按下)。根据这个变量来确定鼠标拖动时是绘制还是擦除的操作。 接下来,注册鼠标按下、拖动和释放事件的处理程序。当鼠标按下时,根据是否按住Ctrl键来设置绘制还是擦除的模式,并记录下鼠标的位置。当鼠标拖动时,根据模式来绘制或擦除板上的图形。当鼠标释放时,结束绘制或擦除操作。 最后,将板添加到JavaFX的窗口中,并显示出来。 通过以上步骤,就可以在JavaFX实现板擦除功能。用户可以根据需要选择绘制还是擦除模式,并通过鼠标拖动来实现板上进行绘制或擦除操作。 ### 回答2: JavaFX实现板擦除功能可以通过以下步骤实现: 1. 创建一个JavaFX板应用程序。 2. 在板上使用JavaFX的绘图工具来绘制图形和文字。 3. 实现擦除功能的关键是使用GraphicsContext类的clearRect方法。该方法接受四个参数:起始点的x坐标、y坐标,以及矩形的宽度和高度。调用这个方法可以清除指定区域的图形。 4. 当用户点击板上的“擦除”按钮时,设置一个标志来指示擦除模式已启用。 5. 在鼠标按下事件处理程序中,检查擦除模式是否已启用。如果是,则将擦除标志设置为真,并使用clearRect方法擦除鼠标所在的位置。 6. 在鼠标拖动事件处理程序中,如果擦除标志为真,则使用clearRect方法擦除鼠标所在的位置。 7. 在鼠标释放事件处理程序中,将擦除标志设置为假,擦除操作完成。 8. 实现其他必要的功能,如笔颜色、粗细的调整等。 通过以上步骤,就可以实现JavaFX板擦除功能。当用户使用鼠标进行绘操作时,可以通过点击擦除按钮来切换到擦除模式,在该模式下使用鼠标进行擦除操作。这样就可以实现板擦除功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值