Почему не видно JLabel на JFrame? - Java

Узнай цену своей работы

Формулировка задачи:

Был до этого корявый код и все работало, а сейчас решил красиво переписать и ужас. Не работает. Класс

class RFrame extends JFrame

public RFrame(String title, int height, int width, Dimension size) {
    super(title);
    this.height = height;
    this.width = width;
    bufferRange = height * width;
    this.size = size;
    LookAndFeel();
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    InitCells(); //Все как положено. Сначала создадим лейблы
    setLayout(new GridLayout(height, width, 1, 1)); // потом разметку таблицей
    setPreferredSize(size); 
    pack();  //Пак делаем
    setVisible(true);        // а затем видимость. Все вроде ровно.
}
Сделал фрейм с

GridLayout

и в этот грид надо поместить JLabel'ы. Код функции InitCells()
void InitCells() {
    cell = new JLabel[bufferRange];
    for (int i = 0; i < cell.length; i++) {
        cell[i] = new JLabel();
        cell[i].setPreferredSize(new Dimension(1, 1));
//      cell[i].setFont(defaultFont); //Фонт моширинный 18пт
        cell[i].setForeground(defaultForeground); //Черный
        cell[i].setText("D"); //Пример символа
        add(cell[i]);
        cell[i].setVisible(true);
    }
}
Но фрейм все равно пустой

Решение задачи: «Почему не видно JLabel на JFrame?»

textual
Листинг программы
public int getHeight() {
        return height;
    }
 
    public int getWidth() {
        return width;
    }
 
    public Dimension getSize() {
        return size;
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5