У меня есть эта проблема: Исключение в потоке "main" java.lang.IllegalArgumentException: добавление родителя контейнера к себе
это мой класс:
package simplechat;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Gui {
public Gui(){
JFrame fMain=new JFrame("Chat");
Container main=new Container();
main.setLayout(new BorderLayout());
fMain.setContentPane(main);
fMain.add(main);
JPanel utenti=new JPanel();
JPanel chat=new JPanel();
utenti.setBackground(Color.red);
utenti.setSize(150, 500);
chat.setBackground(Color.green);
utenti.setSize(350, 500);
main.add(chat);
main.add(utenti);
main.setSize(500,500);
main.setVisible(true);
}
}
и у меня есть другой класс, который вызывает метод gui():
package simplechat;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SimpleChat extends Frame {
public static void main(String[] args) {
new Gui();
}
}
Не могли бы вы помочь мне?
Проблема довольно проста: вы устанавливаете контейнер как область содержимого для фрейма, а затем добавляете контейнер в фрейм. Некоторые основы того, как работает JFrame
: все компоненты, добавленные в кадр, фактически добавляются в его область содержимого. Когда вы добавляете контейнер в фрейм, вы фактически добавляете контейнер себе.
fMain.add(main);