Рисование на JPanel с использованием потоков в JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Рисование на JPanel с использованием потоков в Java

Сообщение Anonymous »

Я хочу перерисовать() свою JPanel с помощью потока в Java.
У меня есть два разных класса, которые я использую.
Класс с JFrame (основной класс) и другой класс, который расширяет JPanel.
Вот классы:
Это сам фрейм

Код: Выделить всё

public class Frame {
static int width = 1280 ;
static int height = 720 ;

public Frame(){
InGamePanel inGame = new InGamePanel();
JFrame menu = new JFrame();
Menu.setSize(width, height);
Menu.setTitle("STICK FACTORY");
Menu.setResizable(false);
Menu.add(InGame);
Menu.setVisible(true);
}

public static void main(String[] args) {
new Frame();

}

}
А это с потоком, который не запущен:

Код: Выделить всё

import javax.swing.JPanel;

import BackGround.BackGround;
import Enums.Player;
import Enums.Stick;

public class InGamePanel extends JPanel implements KeyListener{

//Thread for FPS
FPS reloader = new FPS();

//Background
BackGround gameBG = new BackGround(Frame.width , Frame.height);

//Player
int xPosition_Player = 400;
int yPosition_Player = 180;
Player jeff = new Player();

//Stick
int xPosition_Stick = 600 ;
int yPosition_Stick = 180 ;
Stick fluffy = new Stick();

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
gameBG.drawBackGround(g);
jeff.drawPlayer(g, XPosition_Player, YPosition_Player);
fluffy.drawStick(g, XPosition_Stick, YPosition_Stick);
reloader.run();
}

@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if(e.getKeyChar() == 's'){
yPosition_Player+= 40 ;
jeff.direction = 's';
}
}

@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub

}

@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}

class FPS implements Runnable{

int fps = 60 ;
@Override
public void run() {
try {
Thread.sleep(1000 / fps);
repaint();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}
}
Итак, как мне запустить поток и перерисовать мою программу?

Вернуться в «JAVA»