gpt4 book ai didi

java - 面板未添加到 GUI

转载 作者:行者123 更新时间:2023-12-02 03:37:23 24 4
gpt4 key购买 nike

我最近开始学习 Java,并正在为个人使用的角色创建表编写 gui。我相信我已经让所有后端内容正常工作,但我无法在控制台之外测试它,因为我无法让 GUI 显示除灰框之外的任何内容。

我有一个主类,它创建 JFrame 并调用其他角色类的构造函数来完成所有工作,但由于某种原因,GUI 中没有显示任何内容。我没有收到任何错误或任何东西,我花了几个小时研究可能的解决方案但无济于事。

我的代码:主要方法:

public static void main(String[] args) throws IOException
{
JFrame main = new JFrame();
JMenuBar menu = new MenuBar();
JPanel character = new CreatorGUI();


main.getContentPane().add(character);
main.add(menu);
main.setJMenuBar(menu);
main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
main.setSize(10000, 10000);
main.pack();
main.setVisible(true);
}

CreatorGUI:

public CreatorGUI() throws IOException
{
JPanel container = new JPanel();
JPanel stats = makeStats();
JPanel mods = makeMods();
JPanel character = makeChar();

container.add(mods);
container.add(stats);
container.add(character);
add(container);
}

我试图让 GUI 以最基本的形式工作,以确保在我返回并完善 GUI 之前一切正常,但我遇到了困难。

非常感谢任何帮助!

最佳答案

main.getContentPane().add(character);
main.add(menu);
main.setJMenuBar(menu);

使用main.getContentPane().add(...)main.add(...)相同。也就是说,该组件被添加到内容 Pane 中。

JFrame 的默认布局管理器是 BorderLayout。

当您不指定约束时,组件将添加到CENTER。但是,只能将单个组件添加到CENTER,因此“菜单”正在取代“字符”面板。

去掉main.add(menu)语句。它应该只添加到菜单栏,因此您只需要使用 setJMenuBar(...) 方法。

关于java - 面板未添加到 GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37283014/

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