You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.3 KiB
43 lines
1.3 KiB
package tetris;
|
|
|
|
import javax.swing.*;
|
|
import java.awt.*;
|
|
import java.awt.event.KeyAdapter;
|
|
import java.awt.event.KeyEvent;
|
|
|
|
public class PreparePanel extends JPanel {
|
|
private final ResourceManager res;
|
|
private Runnable startCallback;
|
|
|
|
public PreparePanel(Runnable startGame) {
|
|
this.res = ResourceManager.getInstance();
|
|
this.startCallback = startGame;
|
|
setPreferredSize(new Dimension(510, 650));
|
|
initControls();
|
|
}
|
|
|
|
private void initControls() {
|
|
addKeyListener(new KeyAdapter() {
|
|
@Override
|
|
public void keyPressed(KeyEvent e) {
|
|
if (e.getKeyCode() == KeyEvent.VK_SPACE) {
|
|
res.stopPrepareMusic();
|
|
startCallback.run();
|
|
}
|
|
}
|
|
});
|
|
setFocusable(true);
|
|
}
|
|
|
|
@Override
|
|
protected void paintComponent(Graphics g) {
|
|
super.paintComponent(g);
|
|
g.drawImage(res.getPrepareBackground(), 0, 0, getWidth(), getHeight(), this);
|
|
|
|
g.setColor(Color.WHITE);
|
|
g.setFont(new Font("微软雅黑", Font.BOLD, 24));
|
|
String text = "按空格键开始游戏";
|
|
int textWidth = g.getFontMetrics().stringWidth(text);
|
|
g.drawString(text, (getWidth() - textWidth) / 2, getHeight() - 80);
|
|
}
|
|
} |