为什么 Java 图形不适用于自定义子 类?
Why does Java Graphics not work with custom sub classes?
我正在尝试使用 Ellipse2D.Double class.
为圈子创建子class
public class Circle extends Ellipse2D.Double{
double radius;
public Circle (double radius){
radius = this.radius;
height = radius*2;
width = radius*2;
x = 0;
y = 0;
}
像这样填充 JPanel 不起作用:
JPanel p = new JPanel() {
@Override
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
Circle circle1 = new Circle(100);
g2.draw(circle1);
但这样做确实有效:
g2.draw(new Ellipse2D.Double(0, 0, 100, 100));
这是为什么?我在构造函数中设置 Ellipse2D 的所有字段,但没有收到任何错误消息。所以我不确定为什么它不起作用。
你的构造函数不正确。
radius = this.radius;
正在将参数变量radius
设置为radius
字段的初始值。应该是反过来的。
this.radius = radius;
我正在尝试使用 Ellipse2D.Double class.
为圈子创建子classpublic class Circle extends Ellipse2D.Double{
double radius;
public Circle (double radius){
radius = this.radius;
height = radius*2;
width = radius*2;
x = 0;
y = 0;
}
像这样填充 JPanel 不起作用:
JPanel p = new JPanel() {
@Override
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
Circle circle1 = new Circle(100);
g2.draw(circle1);
但这样做确实有效:
g2.draw(new Ellipse2D.Double(0, 0, 100, 100));
这是为什么?我在构造函数中设置 Ellipse2D 的所有字段,但没有收到任何错误消息。所以我不确定为什么它不起作用。
你的构造函数不正确。
radius = this.radius;
正在将参数变量radius
设置为radius
字段的初始值。应该是反过来的。
this.radius = radius;