gpt4 book ai didi

java - 我在 JFrame 中添加容器时遇到问题

转载 作者:行者123 更新时间:2023-12-02 08:54:17 25 4
gpt4 key购买 nike

我是一名信息学学生,刚开始学习 Java,我想创建一个项目来制作计算器。

我遇到了以下问题:我想使用 add(contenu) 在 JFrame 中添加容器,但它给了我以下警告:

Exception in thread "main" java.lang.IllegalArgumentException: 
adding container's parent to itself

我不明白为什么会出现这个问题。

这是我的项目的类代码:

主要类:

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]);
}
}
}

您知道为什么会出现此问题吗?

最佳答案

正如评论之一已经提到的,您正在尝试将 JFrame 的内容 Pane 添加到自身。

以下内容将起作用:

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]);
}
}

关于java - 我在 JFrame 中添加容器时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60586538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com