parent
5837039162
commit
ab8a7279d1
@ -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