Программа отрисовывает наследника от JButton только если навести курсор
Заполняю JPanel, используя GridLayout кнопками. При этом, если заполнять обычными JButton, то они корректно отрисовываются в любой момент при любом размере окна. Но если получить наследника
import javax.swing.*;
public class GameButton extends JButton {
private int X;
private int Y;
public int getX(){
return X;
}
public int getY(){
return Y;
}
public GameButton(char p_text, int p_x, int p_y){
super(String.valueOf(p_text));
this.X = p_x;
this.Y = p_y;
}
}
И в абсолютно том же цикле добавления заменить JButton на GameButton
for (int i = 0; i < dimension; i++) {
for (int j = 0; j < dimension; j++) {
gameButtons[i][j] = new GameButton(DOT_EMPTY, j, i);
gameButtons[i][j].addActionListener(btnLsnr);
result.add(gameButtons[i][j]);
}
}
То кнопки отрисовываются только после обращения к ним. Например, если занести над ней курсор или поменять текст на кнопке. Почему так? Стандартные менеджеры расположения не корректно работают с наследниками? Но это же не логично, там просто добавилось два поля к стандартной кнопке.