Java.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET.NET: 我如何给一个矩形添加一个名称,它是一个图形的节点?

问题描述 投票:0回答:1

我是java新手,我在下面的练习中遇到了一些问题。这是我要做的。

todo

据我所知,一个用java.awt.Rectangle制作的Rectangle 有一个x和y坐标,还有一个宽度和高度。所以,我可以创建一个这样的Rectangle(例如)。

Rectangle node = new Rectangle (5,10,15,20);

但是.., 我不知道怎样才能在那个矩形上加一个名字?. 到目前为止,我已经创建了一个这样的Node类。

import java.awt.Rectangle;

public class Node {
    private int x;
    private int y;
    private int width;
    private int height;
    private String name;

    public Node(int x, int y, int width, int height, String name) {
        this.x = x;
        this.y = y;
        this.width = width;
        this.height = height;
        this.name = name;
    }

}

我不知道这样做是否正确 因为根据我的理解 矩形对象已经有了5个参数中的4个 在我的构造函数中的节点。那么正确的做法是什么呢?我是否应该为一个矩形做一个父类,然后再做一个节点子类,在构造函数中添加一个名称即可?希望说的够清楚,我真的很困惑......谢谢你的时间!

java awt
1个回答
0
投票

你的构造函数已经很好看了。就我的理解而言。

一个节点有一个Rectangle和一个Name。

所以你的类成员应该是。

public class Node{
    private String name;
    private Rectangle rectangle;

    ... 
}

通过保持相同的构造函数签名 你可以初始化这两个成员。namerectangle.

对于第三点,你需要有第二个没有参数的构造函数,默认初始化名称和矩形。默认的构造函数是这样的。

public Node(){
      ...
}

EDIT (回答你的评论)

差不多了 :) 我不太清楚你是要在构造函数中传递一个矩形,还是更像位置和大小。如果由我来决定,我实现了这两个功能。

public class Node{

    private String name;
    private Rectangle rectangle;

    public Node(){
        this.name = "some default name";
        this.rectangle = // however you initialise your default rectangle
    }

   public Node(String name, int x, int y, int width, int height){
       this.name = name;
       this.rectangle = .... // use x,y, width and height to create a new rectangle
   }

   // your solution:
   public Node(String name, Rectangle rectangle){
       this.name = name;
       this.rectangle = rectangle;
   }
© www.soinside.com 2019 - 2024. All rights reserved.