私の問題は、コンストラクターでJButtonを作成するときに、次のコードを使用して、その位置をいくつかの相対座標、たとえばx=5およびy=6に設定することです。
this.setLocation(new Point(x, y));
しかし、getLocation()メソッドを使用してその場所を取得しようとすると、常に0,0が返されます。これは、グリッドレイアウトを利用したJFrameに配置しようとしているすべてのJButtonで発生することに注意してください。また、デバッグプロセス中に、それらの場所が適切にインスタンス化されていることにも注意しました。
誰かが私にこれが起こる理由を説明できますか、そして私がそれをどうにかして修正できるかどうか?
編集:
コンストラクター(私が作成したブリッククラスはJButtonを拡張します):
public Brick(int posx, int posy) {
this.setLocation(new Point(posx, posy));
this.setVisible(true);
}
2つのforループで約100以上を作成します。
for (int row = 0; row < 15; row++) {
for (int column = 0; column < 15; column++) {
Brick brickie = new Brick(row, column);
}
}
しかし、その後、レンガを選び、その場所を次のように確認したい場合は、次のようにします。
Point brickLocation = brickie.getLocation();
brickLocation.x == 0
と_brickLocation.y == 0