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);
}
を持つ別のクラスは}のJava実行するJButton
これはブレイクアウトゲームを起動することになっているボタンを作成し、メインのコードです。ブレイクアウトのためのコードは次のとおりです。
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だけです。私は間違って何をしていますか? 注:私は、ブレークアウトゲームの部分の基本コードのみを掲載しています。
あなたは 'JFrame'(例えば、'ブレークアウトを実行する予定でください:
別のオプションは、このようなものは、ウィンドウが開いたときに、それはあなたのコードを実行されるように
Breakout
クラスにリスナーを追加することです')や' GraphicsProgram'( '' BreakoutGame'など)?もっと早く助けを求めるには、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 –ところで、私は['GraphicsProgram'](https://cs.stanford.edu/people/eroberts/jtf/javadoc/student/acm/program/GraphicsProgram.html)と[' Program'](https: //cs.stanford.edu/people/eroberts/jtf/javadoc/student/acm/program/Program.html)は 'JApplet'のインスタンスであり、ACM Java APIが役に立たないことを意味します。 [Java Plugin support deprecated](http://www.gizmodo.com.au/2016/01/rest-in-hell-java-plug-in/)と[Plugin-Free Webへの移行](https: //blogs.oracle.com/java-platform-group/entry/moving_to_a_plugin_free)。 –