将double传递给Graphics fillRect方法

时间:2015-10-25 21:13:39

标签: java awt

我正在使用Java AWT。

我需要在double内使用g.fillrect(),但此功能只需int。问题是我需要double。如果我有int而不是java分区将其变为零。我该如何解决这个问题?

g.fillRect(e.getX(), e.getY(), (double)(e.getWidth() * (e.getHealth() / e.getMaxHealth())), 5);

2 个答案:

答案 0 :(得分:1)

不要将可视化健康栏的大小与健康栏的大小混淆。我们假设health是一个从0到4的int。可视化栏的大小应该是:

Foo * foo = new foo;

在除法之前先进行乘法,你的int除法应该可以正常工作。

答案 1 :(得分:0)

(int)(e.getWidth() * (double)(e.getHealth() / e.getMaxHealth()))
这样,getHealth()/ getMaxHealth()的结果将是一个double,当且仅当getWidth()*(the-result-fraction)大于1时,这将使整个结果大于零。

如果可以获得所需的结果,您也可以使用ceil()
Math.ceil(e.getWidth() * (double)(e.getHealth() / e.getMaxHealth()));