私はJlabelを追加して、私のプログラムでelpasedの時間を表示しようとしていますが、どこに置くべきか、そして追加する方法は分かりません。私が見つけたコードの1つを使ってみましたが、プログラムがハングしました。あなたが私を助けることを願って:時間が経過したキャンバスJava
はここに私のコードの要点だ、私は私のGUIのための2つの別々のJavaファイル
public class MyFrame extends JFrame implements Serializable,ActionListener{
Canvas canvas;
CanvasManager manager;
public MyFrame() {
canvas = new Canvas();
canvas.setSize(600,700);
this.add(canvas);
canvas.setBackground(Color.green);
this.pack();
this.setVisible(true);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
manager = new CanvasManager(canvas);
manager.start();
}
を持っている、これは私が私の画像を描く私のキャンバスです:
public class CanvasManager extends Thread implements MouseListener, Serializable{
private final int FRAME_DELAY = 200; // 20ms. implies 50fps (1000/20) = 50
private BufferedImage img;
private boolean toggle = true;
private int width = 600;
private int height = 700;
private Canvas canvas;
private long start;
public CanvasManager(Canvas canvas) {
this.canvas = canvas;
this.canvas.setSize(width, height);
this.canvas.addMouseListener(this);
}
public void run() {
start = System.currentTimeMillis();
canvas.createBufferStrategy(2);
BufferStrategy strategy = canvas.getBufferStrategy();
Graphics g = null;
while (true) {
g = strategy.getDrawGraphics();
paint(g);
strategy.show();
syncFramerate();
}
}
私のプログラムはキャンバスを再ペイントし続ける必要があるので、私は自分のペイント関数用のスレッドを持っています。
こんにちは、私はすでに私はちょうどそれの内側にタイマーを追加する必要がありますアクションリスナーを持っていますか? –
@XaelYvetteもしそうなら、答えはYesです。タイマーにactionlistenerを追加する – DarkV1
いいえ、それは私のメニューバーです –