Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建Line2D对象_Java_Swing - Fatal编程技术网

Java 创建Line2D对象

Java 创建Line2D对象,java,swing,Java,Swing,我想使用Line2D类创建行,但当我运行类时,我收到以下消息: Linia:java.awt.geom.Line2D$Double@15db9742. 这是我的密码: class linia { public java.awt.geom.Line2D.Double getLine() { return line; } public void setLine(java.awt.geom.Line2D.Double line) { this

我想使用
Line2D
类创建行,但当我运行类时,我收到以下消息:

Linia:java.awt.geom.Line2D$Double@15db9742.

这是我的密码:

class linia {

    public java.awt.geom.Line2D.Double getLine() {
        return line;
    }

    public void setLine(java.awt.geom.Line2D.Double line) {
        this.line = line;
    }
    private java.awt.geom.Line2D.Double line;

}

public class Lines {

    public static java.awt.geom.Line2D.Double create(double x1, double y1, double x2, double y2) {
        java.awt.geom.Line2D.Double tmpL = new java.awt.geom.Line2D.Double();
        tmpL.x1 = x1;
        tmpL.y1 = y1;
        tmpL.x2 = x2;
        tmpL.y2 = y2;
        return tmpL;

    }

    public static void main(String[] args) {
        linia line = new linia();
        line.setLine(create(Double.valueOf(1), Double.valueOf(1), Double.valueOf(2), Double.valueOf(2)));
        System.out.println("Line: " + line.getLine());
    }

}

我发现在linia类中没有默认构造函数。另一个选项是根据参数和所需的任何初始化添加自定义构造函数

Java在任何类定义中都需要构造函数

class Linia
{
     public Linia() {
        // here you add any default implementation required
     }

    public java.awt.geom.Line2D.Double getLine() {
        return line;
    }
    public void setLine(java.awt.geom.Line2D.Double line)
    {
        this.line = line;
    }
}

注意:Java中的命名约定更倾向于Java类以大写字母开头,因此将您的类称为Linia而不是Linia

是一种好的做法,我发现Linia类中没有默认构造函数。另一个选项是根据参数和所需的任何初始化添加自定义构造函数

Java在任何类定义中都需要构造函数

class Linia
{
     public Linia() {
        // here you add any default implementation required
     }

    public java.awt.geom.Line2D.Double getLine() {
        return line;
    }
    public void setLine(java.awt.geom.Line2D.Double line)
    {
        this.line = line;
    }
}

注意:Java中的命名约定更倾向于Java类以大写字母开头,因此最好将classLinia称为class,而不是Linia

您可以使用
getBounds()
方法打印行的坐标

public static void main(String[] args) {
     linia line = new linia();
     line.setLine(create(Double.valueOf(1), Double.valueOf(1), Double.valueOf(2), Double.valueOf(2)));
     System.out.println("Line: " + line.getLine().getBounds());
}
预期产出:

Line: java.awt.Rectangle[x=1,y=1,width=1,height=1]

您可以使用
getBounds()
方法打印线的坐标

public static void main(String[] args) {
     linia line = new linia();
     line.setLine(create(Double.valueOf(1), Double.valueOf(1), Double.valueOf(2), Double.valueOf(2)));
     System.out.println("Line: " + line.getLine().getBounds());
}
预期产出:

Line: java.awt.Rectangle[x=1,y=1,width=1,height=1]

你希望打印出什么?你希望打印出什么?