gpt4 book ai didi

java - 我正在尝试用 Java 制作 GUI。我创建了框架,但面板没有显示。怎么了?

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

当一切都在一个类中时,它就可以工作了。我试图将它们分开以获得更“结构化”的代码,但现在只显示框架。

我的主课:

 public class Main {
public static void main(String[] args) {
GraphicInterface gameInterface;
gameInterface = new GraphicInterface();
}
}

图形界面类:

public class GraphicInterface {
public GraphicInterface() {
GameFrame gameFrame = new GameFrame();
MainPanel menuPanel = new MainPanel();
gameFrame.addPanel(menuPanel);
menuPanel.setVisible(true);
}
}

GameFrame 类:

import javax.swing.JFrame;
import javax.swing.JPanel;

public class GameFrame extends JFrame {
public GameFrame() {
JFrame gameFrame = new JFrame("Games");
gameFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gameFrame.setResizable(false);
gameFrame.getContentPane().setLayout(null);
gameFrame.setSize(905, 700);
gameFrame.setVisible(true);
}

public void addPanel(JPanel menuPanel) {
this.add(menuPanel);
}
}

MainPanel 类:

import java.awt.Color;
import javax.swing.JPanel;
public class MainPanel extends JPanel {
public MainPanel() {
JPanel mainPanel = new JPanel();
mainPanel.setLayout(null);
mainPanel.setBounds(0, 0, 905, 700);
mainPanel.setBackground(new Color(243, 207, 252));
mainPanel.setVisible(true);
}
}

最佳答案

您打算使用 GameFrame 对象作为 JFrame,但 GameFrame 无缘无故地创建了一个全新的其他框架。因此,请避免这种情况并仅使用您的 GameFrame :

public GameFrame() {
super("Games");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
getContentPane().setLayout(null);
setSize(905, 700);
setVisible(true);
}

同样,您想使用一个 MainPanel 对象作为容器,但它创建了一个新的 JPanel ,它将被丢弃而根本不会被使用,所以如上:

public MainPanel() {
setLayout(null);
setBounds(0, 0, 905, 700);
setBackground(new Color(243, 207, 252));
setVisible(true);
}

关于java - 我正在尝试用 Java 制作 GUI。我创建了框架,但面板没有显示。怎么了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41444431/

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