私のアプリケーションでは、出力でフラグ画像を制御する配列を作成しました。これはうまくいきましたが、配列から要素を削除すると、画像はまったく変更されません。配列から要素を削除してもグラフィックは変更されません
class Flag{
Image FlagImage;
int FlagNum = 0;
public Flag(int FlagNum) {
this.FlagNum = FlagNum;
try{
FlagImage = ImageIO.read(new File("flag1.png"));
}catch(Exception e){
}
}
public void Update() {
}
public void Draw(Graphics g) {
//Draw Flag
g.drawImage(FlagImage, ((FlagNum) % 3+1) * 100-100, (int)((FlagNum)/3) * 100+100, null);
}
}
public class Flags extends JPanel {
/**
* Creates new form Flags
*/
public Flags(){
initComponents();
FlagSet.add(new Flag(1));
final Timer timer =new Timer(10, new ActionListener(){
@Override
public void actionPerformed(final ActionEvent e){
repaint();
for (Flag f: FlagSet){
f.Update();
}
}
});
}
public static ArrayList<Flag> FlagSet = new ArrayList();
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
for (Flag f: FlagSet){
f.Draw(g);
}
}
私はそのようにようにフラグを追加しよう:
flagCounter = 4;
while(flagCounter > -1){
Flags.FlagSet.add(new Flag(flagCounter));
flagCounter--;
}
正常に動作しますが、私は後でFlgas.FlageSet.remove(//Some flag)
に置けば、私のイメージは変化しません。何か案は?前もって感謝します。
あなたは 'repaint()'を試しましたか? –
私はjavaを初めて利用しています。再ペイントを使用するにはどうすればよいですか?私はあなたが私の質問に答えたと思う。 – mtheorylord
また、ペイントの前にショートディレイを追加するにはどうすればいいですか? – mtheorylord