Программа отрисовывает наследника от 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]);
            }
        }

То кнопки отрисовываются только после обращения к ним. Например, если занести над ней курсор или поменять текст на кнопке. Почему так? Стандартные менеджеры расположения не корректно работают с наследниками? Но это же не логично, там просто добавилось два поля к стандартной кнопке.


Ответы (0 шт):