Java 我需要在Y轴上移动两个形状,怎么做?

Java 我需要在Y轴上移动两个形状,怎么做?,java,awt,Java,Awt,我作业中的问题需要一个箭头,该箭头从原始状态向上移动50像素。它需要一个“moveUp”方法,我需要使用setYInt()和getYInt()方法来实现这一点 这是我当前的代码: import java.awt.*; public class Arrow { private Canvas canvas; private Triangle head = new Triangle(120, 500, 50, 50, true); private Rectangle shaft =

我作业中的问题需要一个箭头,该箭头从原始状态向上移动50像素。它需要一个“moveUp”方法,我需要使用
setYInt()
getYInt()
方法来实现这一点

这是我当前的代码:

import java.awt.*;
public class Arrow {
   private Canvas canvas;
   private Triangle head = new Triangle(120, 500, 50, 50, true);
   private Rectangle shaft = new Rectangle(140, 550, 10, 100);

   public Arrow(Canvas _canvas) {
      canvas = _canvas;
      Triangle head = new Triangle(120, 500, 50, 50, true);
      Rectangle shaft = new Rectangle(140, 550, 10, 100);
   }

   public void draw() {
      canvas.draw(head);
      canvas.draw(shaft);
   }

   public void erase() {
      canvas.erase(head);
      canvas.erase(shaft);
   }

   public void moveUp() {
      head.getYInt();
      shaft.getYInt();
      head.setYInt(head.getYInt - 50);
   }
}
我在使用此代码时遇到的错误:

Arrow.java:32: error: cannot find symbol
      head.setYInt(head.getYInt - 50);
                       ^
  symbol:   variable getYInt
  location: variable head of type Triangle
1 error
我不明白我应该如何得到Y整数并将其设置为另一个。感谢您的帮助

head.setYInt(head.getYInt - 50);
您正在使用的
head.getYInt
不是函数。请尝试
.getYInt()

此处:

head.setYInt(head.getYInt - 50);
似乎您打算在head对象上调用方法
setYInt()
。最有可能的是,您打算使用
head.getYInt()
首先检索当前的Y值

所以:要么到处使用getter/setter方法,要么(不推荐)只访问相应的字段

除此之外:

private Triangle head = new Triangle(120, 500, 50, 50, true);

没有多大意义:您已经初始化了
head
,所以再次初始化没有意义。更糟糕的是:您实际上是而不是在构造函数中初始化字段头,您创建一个局部变量,初始化它,然后忘记它

head.getYInt()
public Arrow(Canvas _canvas) {
  Triangle head = new Triangle(120, 500, 50, 50, true);