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
但我不确定如何解决这个问题,如果有人能告诉我怎么做的话。我很感激。
答案 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);