Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing JPanel_Java_Swing_Jpanel - Fatal编程技术网

Java Swing JPanel

Java Swing JPanel,java,swing,jpanel,Java,Swing,Jpanel,我正在构建一个简单的俄罗斯方块游戏,在我最初的JPanel中有3个按钮。当我按下开始游戏按钮时,游戏在后台开始,但我的游戏屏幕不显示 我的俄罗斯方块类扩展了JFrame,我有两个面板。一个用于3个按钮,一个用于实际游戏。当我按下开始游戏按钮时,它应该移除按钮并显示游戏JPanel 有什么建议吗?谢谢 startButton.addActionListener(new ActionListener() { public void actionPerformed(Acti

我正在构建一个简单的俄罗斯方块游戏,在我最初的JPanel中有3个按钮。当我按下开始游戏按钮时,游戏在后台开始,但我的游戏屏幕不显示

我的俄罗斯方块类扩展了JFrame,我有两个面板。一个用于3个按钮,一个用于实际游戏。当我按下开始游戏按钮时,它应该移除按钮并显示游戏JPanel

有什么建议吗?谢谢

startButton.addActionListener(new ActionListener() {
              public void actionPerformed(ActionEvent e) {
                  System.out.println("Start button pressed");
                  Tetris.this.startGame();
              }
            });
这是StartName的代码;board对象还扩展了JPanel

    public void startGame(){
            remove(panel);

        board = new Board();

        board.repaint();
        tempBoard = new Board();

        board.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                int keyCode = e.getKeyCode();
                if(keyCode == leftKey && canMoveLeft()){
                    moveLeft();
                }
                if(keyCode == rightKey && canMoveRight()){
                    moveRight();
                }
                if(keyCode == downKey && canMoveDown()){
                    sleepTime = 50;
                }
            }

            public void keyReleased(KeyEvent e) {
                int keyCode = e.getKeyCode();
                if(keyCode == downKey && canMoveDown()){
                    sleepTime = 300;
                }
            }
        });
        board.setFocusable(true);

        add(board,BorderLayout.CENTER);

        pack();
        setVisible(true);

        updateGame();
容器移除面板

这就是你要找的
此外,tempBoard似乎什么也没做

我建议您使用JavaFX,因为它可能是您的更新名;调用,如果这在UI中没有任何作用,我建议在单独的线程中启动该调用。