public class SocialNetwork extends Program
implements Constants {
Canvas canvas = new Canvas();
public void init() {
breakoutButton = new JButton("Play Breakout Game");
breakoutButton.setForeground(Color.WHITE);
breakoutButton.setBackground(Color.BLACK);
add(breakoutButton, WEST);
breakoutButton.addActionListener(this);
getContentPane().setBackground(Color.BLACK);
addActionListeners();
add(canvas);
}
}
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("Play Breakout Game") || e.getSource() == breakoutButton) {
canvas.displayMessage("game started"); //displayMessage method displays the parameter string on the canvas.
Breakout bo = new Breakout();
bo.setVisible(true);
}
}
这是创建应该启动突破游戏的按钮的主要代码。突破的代码是:
public class Breakout extends GraphicsProgram {
public void run() {
setBackground(Color.BLACK);
setUpBricks();
points = new GLabel("Points: " + pointsCounter);
add(points, getWidth()/2 - points.getWidth()/2, getHeight() - points.getAscent());
points.setColor(Color.WHITE);
for(int i=0; i < NTURNS; i++) {
addMouseListeners();
setUpGame();
playGame();
if (brickCounter == 0) {
GLabel winner = new GLabel("You Win! You got " + pointsCounter + " points.");
winner.setFont("Times New Roman-25");
winner.setColor(Color.WHITE);
add(winner, getWidth()/2 - winner.getWidth()/2, getHeight()/2 - winner.getAscent()/2);
break;
}
}
if (ball.getY() > getHeight()) {
GLabel message = new GLabel("Game Over! You got " + pointsCounter + " points.");
message.setFont("Times New Roman-25");
message.setColor(Color.WHITE);
add(message, getWidth()/2 - message.getWidth()/2, getHeight()/2 - message.getAscent()/2);
}
}
问题是当我点击按钮时,它会注册点击,打开一个 JFrame,但不运行程序。只有一个空白的 JFrame。我究竟做错了什么?注意:我只发布了突围游戏部分的基本代码。