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

イベント ハンドラに 'revalidate' を追加してみてください。それは役立つはずです、私は推測します。

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

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

 }

});

ところで、Swing の使用を強制されない場合は、最新の JavaFX を使用することをお勧めします。Swing は Oracle によって開発されなくなりました。

于 2015-01-08T15:24:17.083 に答える