我在我的项目中使用了paintComponent类,目前我想知道如何从顶部减小矩形的尺寸使其向下移动。
这是代码的一部分:
public Battery(){
super();
firstTime = true;
f = new Font("Helvetica", Font.BOLD, 14);
m = Toolkit.getDefaultToolkit().getFontMetrics(f);
}
public void paintComponent(Graphics g){
if(firstTime){
firstTime = false;
batteryLevel = 1 + this.getHeight();
decr = batteryLevel / 20;
}else{
g.setColor(Color.RED);
g.fillRect(1, 0, this.getWidth(), this.getHeight());
g.setColor(Color.GREEN);
g.fillRect(1, 0, this.getWidth(), batteryLevel);
g.setColor(Color.BLACK);
g.setFont(f);
g.drawString("TEST", (getWidth() - m.stringWidth("TEST")) / 2 , this.getHeight() / 2);
}
}
public void decreaseBatteryLevel(){
batteryLevel -= decr;
this.repaint();
}
PS。抱歉,如果我做错了什么,我是这个论坛的新手。
最佳答案
当您希望可见电池电量下降时,您将要相对于batteryLevel
的值增加Y坐标。您可以使用:
g.fillRect(1, getHeight() - batteryLevel, getWidth(), batteryLevel);