在JavaFX中绘制字段形状

在JavaFX中绘制字段形状,java,javafx,Java,Javafx,我想在JavaFX中绘制字段形状 我需要画非标准形状图点像照片 照片代码: WorkingField.java import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import static java.lang.Math.*; public class WorkingField extends Component { double L1 = 200; double L2 =

我想在JavaFX中绘制字段形状

我需要画非标准形状图点像照片

照片代码: WorkingField.java

import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;

import static java.lang.Math.*;


public class WorkingField extends Component {
    double L1 = 200;
    double L2 = 100;
    double L3 = 0;
    double Q11 = 0;
    double Q21 = 0;
    double Q31 = 0;
    double Q12 = 90;
    double Q22 = 90;
    double Q32 = 90;

    public void paint(Graphics g)
    {
        g.drawLine(0,384,1366,384); // x-axis
        g.drawLine(683,0,683,1366); // y-axis

        g.setColor(Color.red);
        for(double q1=Q11;q1<=Q12;q1=q1+0.5)
        {
            for(double q2=Q21;q2<=Q22;q2=q2+0.5)
            {
                for(double q3=Q31;q3<=Q32;q3=q3+0.5)
                {
                    int X = (int) (L1*cos(q1*(3.1415926/180))+L2*cos((q1*(3.1415926/180)) + (q2*(3.1415926/180))) + L3*cos((q1*(3.1415926/180)) + (q2*(3.1415926/180)) + (q3*(3.1415926/180))));
                    int Y = (int) (L1*sin(q1*(3.1415926/180))+L2*sin((q1*(3.1415926/180)) + (q2*(3.1415926/180))) + L3*sin((q1*(3.1415926/180)) + (q2*(3.1415926/180)) + (q3*(3.1415926/180))));
                    g.drawLine(683+X,384-Y,683+X,384-Y);
                }
            }

        }
    }
}
但我还需要添加按钮和文本字段,让用户能够拖动轴


我应该使用什么结构以及如何在其中绘制点?

如果将Canvas类用于WorkingField类,则可以使用JavaFX轻松地重写上述代码。然后,您只需选择众多画布示例中的一个,即可正确设置。

您尝试过什么吗?这不是代码请求服务。告诉我们你做了什么,我不需要密码。我想知道这种结构(如窗格和标签…)所附照片的代码不是由JavaFX编写的,我在另一个问题中发现了它。我需要知道如何画点,使一个特定的结构上的形状像一张纸(例如),并把它放在框架?对不起,我的英语很差@沙什瓦特
import javax.swing.JFrame;

public class Main {

    public static void main(String[] args) {
        WorkingField P = new WorkingField();
        JFrame F = new JFrame();
        WorkingField B = new WorkingField();
        B.setSize(100, 70);
        F.setSize(1366,768);
        F.add(P);
        F.add(B);
        F.setVisible(true);

    }

}