0

我一直在开发俄罗斯方块游戏的一个版本,我试图制作一个起始页。我认为使用 2 个面板会很好,但是一旦我按下按钮,游戏就不会运行。这是一段代码,我在其中实现了面板。有什么想法我做错了什么以及我应该怎么做?

public class Tetris extends JFrame 
    {

        JLabel statusbar;
        private JPanel panel1=new JPanel();
        private JPanel panel2=new JPanel();
        public Tetris() 
        {

            setResizable(false);
            setSize(200, 400);
            setTitle("Tetris");
            setDefaultCloseOperation(EXIT_ON_CLOSE);

            //setLayout(new FlowLayout());

            statusbar = new JLabel(" 0");
            JButton startButton = new JButton("START");

            panel1.add(startButton);

            panel2.add(statusbar, BorderLayout.SOUTH);
            Board board = new Board(this);
            board.addKeyListener(new TAdapter(board));
            panel2.add(board);

            startButton.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent arg0) {

                    add(panel2);
                    panel1.setVisible(false);

                }
            });

            add(panel1);
            //board.start();

       }
4

1 回答 1

0

尝试将“重新验证”添加到您的事件处理程序。我猜应该会有帮助。

startButton.addActionListener(new ActionListener()
{
    public void actionPerformed(ActionEvent arg0) {

        add(panel2);
        panel1.setVisible(false);
        revalidate();

 }

});

顺便说一句,如果您不是被迫使用 Swing,我建议您使用现代 JavaFX。甲骨文不再开发 Swing。

于 2015-01-08T15:24:17.083 回答