レイアウト プロパティが GridBagLayout である JPanel から拡張するクラスを作成しました。私は基本的に JLabels (グリッド) の配列を表示する必要がありますが、一度作成されたコンポーネントを置き換えることはできません。変更したいコンポーネントを削除してから、新しいコンポーネントを配置しようとしましたが、結果は奇妙です。たとえば、10x10 JLabels の配列を作成し、position[0][0] と position[9][9] を次のコードに置き換えたいとします。
//At first i have the jpanel layout completely filled
this.remove(0);
this.add((JLabel) start, 0); //This was created with GridBagLayout.gridx = 0 and GridBagLayout.gridy = 0 and it's fine
this.remove(99);
this.add((JLabel) end, 99); //This was created with GridBagLayout.gridx = 9 and GridBagLayout.gridy = 9 and it's out of grid
this.revalidate();
しかし、position[0][0] だけは問題ないように見えます。コンポーネントを交換するにはどうすればよいですか?