1
아이콘을 전환 할 때 어떤 이유가 발생합니다. 아이콘의 이미지가 깜박입니다. 나는 또한 객체를 생성하려고 할 때이 문제를 더 많이 겪고 있는데, x와 y를 객체의 매개 변수로 전달하여 객체를 이동하려고합니다. 어떤 도움이라도 좋을 것입니다.Java ImageIcon 애니메이션 깜박임
public class Main extends JFrame implements ActionListener, KeyListener{
static Main main;
Render render;
Timer timer;
static int x,y,count;
ImageIcon player1 = new ImageIcon("C:\\Users\\Kyle\\Documents\\NetBeansProjects\\Testing52\\src\\testing52\\Player1.png");
ImageIcon player2 = new ImageIcon("C:\\Users\\Kyle\\Documents\\NetBeansProjects\\Testing52\\src\\testing52\\Player2.png");
Main(){
render = new Render();
timer = new Timer(100,this);
setVisible(true);
setSize(500,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
addKeyListener(this);
add(render);
timer.start();
}
public void render(Graphics g){
count += 1;
if(count < 20){
player1.paintIcon(this, g, x, y);
}
if(count > 20){
player2.paintIcon(this, g, x, y);
}
if(count > 40){
count = 0;
}
}
public static void main(String [] args){
main = new Main();
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(count);
render.repaint();
}
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
int id = e.getKeyCode();
int speed = 4;
if(id == KeyEvent.VK_UP){
y -= speed;
}
if(id == KeyEvent.VK_DOWN){
y += speed;
}
if(id == KeyEvent.VK_LEFT){
x -= speed;
}
if(id == KeyEvent.VK_RIGHT){
x += speed;
}
}
@Override
public void keyReleased(KeyEvent e) {
}
}
렌더링 클래스. 당신이 repaint()
후 액션 이벤트에 revalidate()
라고하면
public class Render extends JPanel {
public void paintComponent(Graphics g){
super.paintComponent(g);
Main.main.render((Graphics)g);
}
}
알아 냈어. "if (count> 20)"을 "if (count> = 20)"로 변경해야했습니다. "count + = 1"을 ActionListener로 이동합니다. –