parent
c02e38b635
commit
45451fe50a
@ -0,0 +1,52 @@
|
||||
package tetris;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
|
||||
public class Tetris extends JFrame {
|
||||
private final ResourceManager resManager = ResourceManager.getInstance();
|
||||
private CardLayout cardLayout = new CardLayout();
|
||||
private JPanel container = new JPanel(cardLayout);
|
||||
|
||||
public Tetris() {
|
||||
initUI();
|
||||
resManager.playPrepareMusic();
|
||||
}
|
||||
|
||||
private void initUI() {
|
||||
setTitle("俄罗斯方块");
|
||||
setSize(510, 650);
|
||||
setResizable(false);
|
||||
setDefaultCloseOperation(EXIT_ON_CLOSE);
|
||||
|
||||
NextBlockPanel rightPanel = new NextBlockPanel();
|
||||
GamePanel gamePanel = new GamePanel(rightPanel);
|
||||
rightPanel.setGamePanel(gamePanel);
|
||||
|
||||
PreparePanel preparePanel = new PreparePanel(() -> {
|
||||
cardLayout.show(container, "game");
|
||||
resManager.playBackgroundMusic(); // 只需调用这个方法即可
|
||||
gamePanel.requestFocusInWindow();
|
||||
});
|
||||
|
||||
container.add(preparePanel, "prepare");
|
||||
container.add(createGameContainer(gamePanel, rightPanel), "game");
|
||||
|
||||
add(container);
|
||||
setLocationRelativeTo(null);
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
private JPanel createGameContainer(GamePanel gamePanel, NextBlockPanel rightPanel) {
|
||||
JPanel panel = new JPanel(new BorderLayout());
|
||||
panel.add(gamePanel, BorderLayout.CENTER);
|
||||
panel.add(rightPanel, BorderLayout.EAST);
|
||||
return panel;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
SwingUtilities.invokeLater(Tetris::new);
|
||||
}
|
||||
}
|
Loading…
Reference in new issue