fillRect Graphics错误

时间:2014-10-24 15:38:34

标签: java swing variables graphics paintcomponent

public class paintObjects extends JPanel{

    public void paintComponent(Graphics g){
        super.paintComponent(g);
        Rectangle r = new Rectangle(25, 25, 100, 100); 
        g.fillRect(r.getX(), r.getY(), r.getWidth(), r.getHeight());
        g.setColor(Color.BLUE);

        }

我在fillRect上有错误,当我将鼠标悬停在它上面时,它会显示

  

Graphics类型中的方法fillRect(int,int,int,int)不是   适用于参数(double,double,double,double

但我不确定如何解决这个问题,如果有人能告诉我怎么做的话。我很感激。

2 个答案:

答案 0 :(得分:1)


   public abstract void fillRect(int x, int y, int width, int height)

<小时/> 这是参数列表

的方法

你需要将double值转换为int,因为只有int接受方法。

r.getX()返回double,然后将其转换为int并传递给方法

 g.fillRect((int)r.getX(), (int)r.getY(), (int)r.getWidth(), (int)r.getHeight());

答案 1 :(得分:0)

其他两种选择,看起来比投射更清晰:

使用Rectangle的公开字段,它们是整数:

g.fillRect(r.x, r.y, r.width, r.height);

或只使用fillShape(),因为Rectangle实现了Shape接口:

g.fillShape(r);