我在我的项目中使用了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);

10-07 16:11