Java初心者の質問です。こちらのサイト https://www.javadrive.jp/tutorial/timer/index1.html を参考にタイマーが5、4、3・・とカウントダウンしていき、-1になった瞬間に"GameOver"と"Score"を表示するようにしたいのですが,
タイマーが止まったままになってしまいうまくいっていない状況です。
以下、ソースコードです。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;
public class TimerTest1 extends JFrame implements ActionListener{
javax.swing.Timer timer;
JLabel label;
int sec;
public void paint(Graphics g){ //この関数をカウントダウン後に呼び出したい
g.setColor(Color.YELLOW);
g.clearRect(0,0,1000,1000);
g.drawRect(0,0,800,8000);
g.setColor(Color.RED);
g.drawString("GameOver",330,40);
g.drawString("Score",330,60);
}
public static void main(String[] args){
TimerTest1 frame = new TimerTest1();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(10, 10, 800, 800);
frame.setTitle("タイトル画面");
frame.setVisible(true);
}
TimerTest1(){
sec = 5;
label = new JLabel();
JPanel labelPanel = new JPanel();
labelPanel.add(label);
timer = new Timer(1000 , this);
getContentPane().add(labelPanel, BorderLayout.WEST);
timer.start();
}
public void actionPerformed(ActionEvent e){
label.setText(sec "");
if (sec ==-1){
timer.stop();
System.exit(1);// これを強制終了ではなくゲームオーバー画面への遷移にしたい
}else{
sec--;
}
}
}
どなたかご教授お願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/08 05:34