Java Fillova不会填充窗口

Java Fillova不会填充窗口,java,swing,jpanel,render,Java,Swing,Jpanel,Render,**请随时提供有关流程的反馈。也许有更好的方法来完成我正在做的事情,我只是没有意识到 我有一个扩展JPanel的游戏类。在paintComponent()方法中,它根据游戏状态(菜单)呈现不同的类。只有欢迎屏幕在整个窗口中绘制。即使我在640x480窗口上手动指定(0,0,1000,1000)的坐标,其他的也不会填充窗口 public void paintComponent(Graphics g) { super.paintComponent(g); if (state ==

**请随时提供有关流程的反馈。也许有更好的方法来完成我正在做的事情,我只是没有意识到

我有一个扩展JPanel的游戏类。在
paintComponent()
方法中,它根据游戏状态(菜单)呈现不同的类。只有欢迎屏幕在整个窗口中绘制。即使我在640x480窗口上手动指定(0,0,1000,1000)的坐标,其他的也不会填充窗口

public void paintComponent(Graphics g) {
    super.paintComponent(g);

    if (state == State.WELCOME) {

        welcome.render(g);

    } else if (state == State.SELECTPOSITION) {

        selectPosition.render(g);

    } else if (state == State.SELECTSCENARIO) {

        selectScenario.render(g);
...
selectScenario()
行下列出了更多具有相同逻辑的状态

前两种方法的
render()
方法如下所示:

welcome.render(g)

public void render(Graphics g) {
    g.setColor(Color.red);
    g.fillRect(0, 0, 640, 480);
    g.setColor(Color.white);
    g.drawString("Welcome", 50, 150);
}


selectPosition.render(g)

public void render(Graphics g) {
    g.setColor(Color.blue);
    g.fillRect(0, 0, 1000, 1000);
}
在SelectPosition屏幕期间,屏幕底部有一条大约50像素高的红线

如果你需要更多信息,请告诉我。我试图只共享相关的行


非常感谢您的帮助。

我们不熟悉您的大部分代码、逻辑和程序结构,您可能希望创建并发布一个,让我们亲身体验您的体验。但在我看来,您真正想要做的似乎是基于状态交换视图,例如可以使用CardLayout来完成。

我们不熟悉您的大部分代码、逻辑和程序结构,您可能希望创建并发布一个,让我们亲身体验您的体验。但在我看来,您真正想做的似乎是基于状态交换视图,例如可以使用CardLayout来完成?感谢您的快速响应。当前的颜色只是为了帮助我确定窗口是否按预期变化。我更新了JPanel逻辑以使用setBackground(Color.[Color])。同样的问题仍然存在于窗口底部的彩色条上。我不知道问题出在哪里。paintComponent(Graphics g)方法中还有其他内容吗?也许你需要使用这个:。(我真的不知道如何使用它)paintComponent方法中没有其他内容。我的游戏类扩展了JPanel并实现了Runnable。run方法计算帧并每秒调用30次更新方法。更新方法正在调用repaint。为什么不使用
setBackground(c色)?感谢您的快速响应。当前的颜色只是为了帮助我确定窗口是否按预期变化。我更新了JPanel逻辑以使用setBackground(Color.[Color])。同样的问题仍然存在于窗口底部的彩色条上。我不知道问题出在哪里。paintComponent(Graphics g)方法中还有其他内容吗?也许你需要使用这个:。(我真的不知道如何使用它)paintComponent方法中没有其他内容。我的游戏类扩展了JPanel并实现了Runnable。run方法计算帧并每秒调用30次更新方法。更新方法正在调用重新绘制。谢谢您的建议。关于sscce,你是对的。我从来都不知道我的例子中应该包括什么,应该省略什么。我已经研究过卡片布局,这听起来和我想要的很接近。我试试看。谢谢,谢谢你的建议。关于sscce,你是对的。我从来都不知道我的例子中应该包括什么,应该省略什么。我已经研究过卡片布局,这听起来和我想要的很接近。我试试看。非常感谢。