java - 如何更改 JFrame 上的面板?

标签 java swing timer jpanel actionlistener

因此,我尝试在 3 秒后将 JFrame 的面板从 IntroPanel 更改为主菜单面板。但当我尝试这样做时,它似乎并没有删除面板并添加另一个面板。我不太确定如何解决这个问题,所以我会采取任何建议来解决这个问题。谢谢!

package gamecs245;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
*
* @author ozhang
*/
public class View extends JFrame {

IntroPanel introP = new IntroPanel();
MainMenuPanel mainP = new MainMenuPanel();
CreditsPanel creditP = new CreditsPanel();
private Timer timer;
private int counter = 3;
private final int delay = 1000;

public View(){

startUp();
add(introP);

    ActionListener action = new ActionListener()
    {   
        @Override
        public void actionPerformed(ActionEvent event)
        {
            if(counter == 0)
            {
                timer.stop();
                System.out.println("Panel added");
                remove(mainP);
                add(mainP);

            }
            else
            {
                System.out.println(counter);
                counter--;
            }
        }
    };

    timer = new Timer(delay, action);
    timer.setInitialDelay(0);
    timer.start();



}

private void startUp(){
    setVisible(true);
    setFrameDimensions();
    setCloseOperation();
    setFrameTitle();
    setLocationRelativeTo(null);

}

private void removeIntro(){
    remove(introP);
}

private void setFrameDimensions(){
    setSize(600,400);
}

private void setCloseOperation(){
    setDefaultCloseOperation(EXIT_ON_CLOSE);
}

private void actionPerformed(){

}

private void setFrameTitle(){
    setTitle("CS245 Project");
}

}

最佳答案

你能试试这个吗?

View.remove(<panel to hide>);
View.add(<panel to show>);

关于java - 如何更改 JFrame 上的面板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38821915/

相关文章:

java - GridLayout 删除 JPanel 之间的填充

C# .NET 2 Threading.Timer - 时间漂移

ios - 如何检测任务是否在 swift 3 的最后 2 分钟内执行?

java - 如何在不保存到本地驱动器的情况下读取内存中的 http 文件?

java - JFOREX SDK - 如何向 www 服务器 ssl 连接发送 HTTPS GET 请求

java - jtable中未显示数据

Android CountDownTimer 对于 textView 更新来说太快了

java - JavaFX 中是否有 AffineTransform.createTransformedShape(Shape) 的等效项?

java - 检查 Java 中的两个参数,要么都不为空,要么都优雅地为空

java - Hive 中的自定义 UserDefinedFunction