在代码中,窗口整个卡住无法点击按钮的原因是因为在Window类中使用了定时器Timer来更新窗口,而更新方法中使用了this.removeAll()this.add(scene)来重新添加场景组件。这样做会导致窗口的布局被重新计算,从而导致窗口卡住。

要解决这个问题,可以修改switchScene方法和update方法的实现。具体的修改如下:

Window类中的switchScene方法中,不需要重新计算场景组件的布局,只需将新的场景组件添加到窗口的内容面板中即可。修改后的代码如下:

public void switchScene(Scene scene) {
    Container container = this.getContentPane();
    container.removeAll();
    container.add(scene);
    this.scene = scene;
    this.repaint();
}

Window类中的update方法中,同样不需要重新计算场景组件的布局,只需将当前的场景组件重新添加到窗口的内容面板中即可。修改后的代码如下:

public void update() {
    Container container = this.getContentPane();
    container.removeAll();
    container.add(scene);
    this.repaint();
}

通过以上修改,可以实现打开窗口后显示第一个按钮,并且可以点击按钮进行场景切换

请判断为什么以下代码没有达到我想要的效果怎么解决打开窗口后可以显示第1个按钮但是窗口整个会卡住无法点击按钮:File Startjavapackage comsensuperswing;import javaxswing;import javaawt;public class Start public static void mainString args SwingUti

原文地址: http://www.cveoy.top/t/topic/iMj2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录