上から花をドロップするはずのこのフラワープログラムがあります....数秒待ってから、メソッドを呼び出して花をドロップする必要があります。下降するy値を出力しているため、メソッドが実行されることはわかっています。しかし、それは画面に描画されません。何が間違っているのか本当にわかりません。これがコードの一部です...
//Ignore starting here
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.Random;
//Ignore ending here
public class RedFlower implements ActionListener{
Timer time;
ImageIcon i = new ImageIcon("graphics//flowers//red_flower.png");
Image flower = i.getImage();
int y, x;
int dy = 1;
public void dropFlower(){
Random rnd = new Random();
y = 50;
x = rnd.nextInt(1216);
time = new Timer(5, this);
time.start();
}
public void actionPerformed(ActionEvent e){// used for stoping the timer when off the screen
int checky = y++;
if(checky < 720){
y++;
}else{
time.stop();
}
System.out.println(y);
}
//everything after this is what i call in the other method
public Image getImage(){
return flower;
}
public int getX(){
return x;
}
public int getY(){
return y;
}
}
これが私の描画コードです...
public void paintComponent(java.awt.Graphics g){
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(rf.getImage(), rf.getX(), rf.getY(), null);// rf is what i called the method
g2d.drawImage(sc.getImage(), sc.getX(), sc.getY(), null);//this is the basket that you control
}
また、奇妙なことは、ボタンを押すとメソッドが呼び出されますが、スレッドが実行されるときではありません...