Java:如何向作为图形节点的矩形添加名称?
我是java新手,在以下练习中遇到一些问题:Java:如何向作为图形节点的矩形添加名称?,java,awt,Java,Awt,我是java新手,在以下练习中遇到一些问题: 这就是我要做的: 据我所见,用java.awt.Rectangle制作的矩形具有x和y坐标以及宽度和高度。因此,我可以创建这样的矩形(例如): 但是,我不确定如何向该矩形添加名称。到目前为止,我已经创建了这样一个节点类: import java.awt.Rectangle; public class Node { private int x; private int y; private int width; pr
这就是我要做的: 据我所见,用java.awt.Rectangle制作的矩形具有x和y坐标以及宽度和高度。因此,我可以创建这样的矩形(例如): 但是,我不确定如何向该矩形添加名称。到目前为止,我已经创建了这样一个节点类:
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个。那么,正确的做法是什么呢?我应该为一个矩形创建一个父类,然后创建一个节点子类,在这个子类中我只需要在构造函数中添加一个名称吗?希望这足够清楚,我真的很困惑。。。谢谢你抽出时间 您的构造函数已经看起来不错了。据我所知: 节点有一个矩形和一个名称 因此,您的班级成员应该是:
public class Node{
private String name;
private Rectangle rectangle;
...
}
通过保持相同的构造函数签名,您可以初始化这两个成员name
和rectangle
对于第三点,您需要有第二个构造函数,默认情况下没有初始化名称和矩形的参数。
默认构造函数如下所示:
public Node(){
...
}
编辑(回答您的评论)
几乎:)我不太清楚是否必须在构造函数中传递一个矩形,或者更像位置和大小。如果这取决于我,我会实现这两个
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;
}
您的构造函数已经看起来不错了。据我所知: 节点有一个矩形和一个名称 因此,您的班级成员应该是:
public class Node{
private String name;
private Rectangle rectangle;
...
}
通过保持相同的构造函数签名,您可以初始化这两个成员name
和rectangle
对于第三点,您需要有第二个构造函数,默认情况下没有初始化名称和矩形的参数。
默认构造函数如下所示:
public Node(){
...
}
编辑(回答您的评论)
几乎:)我不太清楚是否必须在构造函数中传递一个矩形,或者更像位置和大小。如果这取决于我,我会实现这两个
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;
}
非常感谢。我不确定我是否正确理解了这一点,那么,我的代码应该是这样的吗?导入java.awt.Rectangle;公共类节点{私有字符串名称;私有矩形矩形;公共节点(矩形矩形,字符串名称){this.Rectangle=Rectangle;this.name=name;}公共节点(){this.Rectangle=Rectangle;this.name=name;}(我不确定如何在注释中显示代码,我对堆栈溢出有点陌生,抱歉)谢谢!我不确定我是否正确理解了这一点,我的代码应该是这样的吗?导入java.awt.Rectangle;公共类节点{私有字符串名称;私有矩形矩形;公共节点(矩形矩形,字符串名称){this.rectangle=rectangle;this.name=name;}public Node(){this.rectangle=rectangle;this.name=name;}}}(我不知道如何在注释中显示代码,我对堆栈溢出有点陌生,抱歉)