Java fillOval不会填充窗口

时间:2013-04-03 22:22:22

标签: java swing jpanel render

**请随时提供有关流程的反馈。可能有更好的方法来完成我正在做的事情,我只是不知道它。

我有一个扩展JPanel的Game类。在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屏幕期间,屏幕底部有一条约50px高的红线。

如果您需要更多信息,请与我们联系。我试图只分享相关的行。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我们不熟悉您的大部分代码,逻辑和程序结构,您可能希望创建并发布sscce,让我们实际体验您正在体验的内容。但对我来说,好像你真正想做的是基于状态交换视图,例如可以使用CardLayout完成。