中更改我在頂部爲borderX1-Y2創建了變量,但是我沒有將它們分配給paint方法。我檢查了方法內的值,它們是正確的,但是當我用另一種方法檢查它們時,它們是0.我如何讓它們保持它們的值?Java實例字段值僅在方法
public void paint(Graphics g)
{
borderX1 = 20;
borderY1 = 20;
borderX2 = getWidth();
borderY2 = getHeight();
g.setColor(Color.white);
g.fillRect(0, 0, borderX2, borderY2);
g.setColor(Color.blue);
g.drawRect(borderX1, borderY1, borderX2 - 40, borderY2 - 40);
}
繼承人一切(我切無用位)
public class ShapePanel extends JPanel
{
private int borderX1;
private int borderY1;
private int borderX2;
private int borderY2;
public ShapePanel(){}
public void paint(Graphics g)
{
borderX1 = 20;
borderY1 = 20;
borderX2 = getWidth();
borderY2 = getHeight();
g.setColor(Color.white);
g.fillRect(0, 0, borderX2, borderY2);
g.setColor(Color.blue);
g.drawRect(borderX1, borderY1, borderX2 - 40, borderY2 - 40);
}
public int getX1()
{return borderX1;}
public int getY1()
{return borderY1;}
public int getX2()
{return borderX2;}
public int getY2()
{return borderY2;}
}
我的錯誤是在我的回報,他們返回值爲0爲所有這些
我可以初始化變量像這樣
private int borderX1 = 20;
private int borderY1 = 20;
private int borderX2 = 762;
private int borderY2 = 533;
但我希望X2和Y2的值根據窗口大小
什麼是類型 - int/double?我猜你正在調用的方法在paint()調用之前。 – imranhasanhira