我正在尝试在面板中将圆形图形居中。
当我使用此代码时,它工作正常:
private int radius = 50;
private ballSize = radius * 2;
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawOval(getWidth()/2 - radius,
getHeight()/2 - radius, ballSize, ballSize);
}
但我想使用这段代码(如下),将 xCoordinate 和 yCoordinate 作为 x 和 y 的参数,因为我需要类中其他方法使用的变量。但是当我使用下面的代码时,圆圈从左上角开始,框架中只有圆圈的左下角。
private class BallPanel extends JPanel {
private int radius = 50;
private int xCoordinate = getWidth() / 2 - radius;
private int yCoordinate = getHeight() / 2 - radius;
private int ballSize = radius * 2;
public void moveUp() {
if (yCoordinate > 0 - radius) {
yCoordinate--;
repaint();
}
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawOval(xCoordinate, yCoordinate,
radius * 2, radius * 2);
}
}
为什么在使用变量作为参数时会导致这个问题,我能做些什么来解决它?