我一直在研究俄罗斯方块游戏的版本,我试图制作一个起始页面。我认为使用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();
}
答案 0 :(得分:0)
尝试添加'重新验证'到您的事件处理程序。我想这应该有所帮助。
startButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0) {
add(panel2);
panel1.setVisible(false);
revalidate();
}
});
顺便说一下,如果你没有被迫使用Swing,我建议你使用现代JavaFX。 Oracle不再开发Swing了。