У меня проблема с добавлением контейнера в JFrame - PullRequest
0 голосов
/ 08 марта 2020

Я учусь на информатику c и, начиная с Java, я хочу создать проект, который позволит мне сделать калькулятор.

Я столкнулся с проблемой, которая заключается в следующем: я хочу добавить Container в мой JFrame с помощью add (contenu), но он дает мне следующее предупреждение:

Исключение Blockquote в thread "main" java .lang.IllegalArgumentException: добавление родительского контейнера к себе

Я не понимаю, почему возникает эта проблема.

Вот коды классов моего проекта:

class Main:

package com.company;

import javax.swing.*;

public class Main {

    public static void main(String[] args) {
	// write your code here
        Fenetre fen = new Fenetre();
        fen.setVisible(true);
    }
}

класс Фенетр:

package com.company;

import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class Fenetre extends JFrame {
    public JButton boutonsNombre[];
    private static int nChiffres = 10;

    public Fenetre() {
        setTitle("CALCULATRICE");
        setSize(1700, 900);
        Container contenu = getContentPane();
        contenu.setLayout(new FlowLayout());
        add(contenu);
        boutonsNombre = new JButton[nChiffres];
        for (int k = 0; k < nChiffres; k++) {
            boutonsNombre[k] = new JButton(String.valueOf(k+1));
            contenu.add(boutonsNombre[k]);
        }
    }


}

Есть ли у вас какие-либо идеи о том, почему эта проблема возникает?

Заранее большое спасибо,

Сердечно ваши

1 Ответ

1 голос
/ 08 марта 2020

Как уже упоминалось в одном из комментариев, вы пытаетесь добавить панель содержимого JFrame к себе.

Будет работать следующее:

public Fenetre() {
        setTitle("CALCULATRICE");
        setSize(1700, 900);
        this.setLayout(new FlowLayout());
        boutonsNombre = new JButton[nChiffres];
        for (int k = 0; k < nChiffres; k++) {
            boutonsNombre[k] = new JButton(String.valueOf(k+1));
            this.add(boutonsNombre[k]);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...