两个循环加速绘制Jframe

时间:2014-08-22 21:01:07

标签: java loops jframe drawing

我有一个需要两个课程的程序。 player-Names类和Player-Model类。我希望player-Names类每半秒重绘一次,而Player-Model类每秒重绘60次,因为我希望运动流畅。我遇到的问题是我希望所有这些都在一个J帧上完成。我该怎么做呢?如果你能引导我朝着正确的方向前进,或者给我一个很好的例子!谢谢你:)。

出于某种原因,它不会让我发布,所以我会输入一些随机代码

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;

import javax.swing.JComponent;
import javax.swing.JFrame;

public class PlayerNames extends JFrame {
    static int connectionTimer = 0;
    static int connectionTimer2 = 0;
    static int reconnect = 0;
    static int reconnectValue = 1;
    static int x = 0;
    static int reconnectWait = connectionTimer + reconnectValue;
    private static final long serialVersionUID = 1L;
    public graph gg = new graph();
    public graph g = new graph();

    private static GameClient socketClient;
    private GameServer socketServer;

    public static void main(int width, int height) {
        PlayerNames tt = new PlayerNames();
    //  PlayerGraphics t = new PlayerGraphics();
        tt.setSize(width, height);
        if (Game.ServerOwner == 1) {
            tt.setTitle("Server: " + Game.username);
        } else {
            tt.setTitle("Username: " + Game.username);
        }
        tt.setVisible(true);
        tt.getContentPane().add(tt.gg);
        tt.getContentPane().add(tt.g);
        tt.setDefaultCloseOperation(EXIT_ON_CLOSE);
        tt.setResizable(false);
    }

1 个答案:

答案 0 :(得分:0)

javax.swing.timer是你的朋友。您需要绘制一些内容,并根据您的模型(即播放器数据)绘制一些方法。然后使用计时器重复触发此绘图。

Oracle有一个可能对您有帮助的教程:http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html