servus.
ich habe ein kleines javaapplet geschriebn. dies beinhaltet zur zeit lediglich einen button und ein bild. wenn nun auf den button gedrückt wird soll das bild sich nach rechts bewegen. jedoch flackert / flimmert es sehr stark. hab hier schon im forum nach verschiedenen lösungen gesucht aber ich komme nicht wirklich dahinter wie ich das problem lösen kann. ich weiß das es an der repaint-methode liegt, die das bild anscheinend immer wieder neu zeichnet. daher bitte ich euch hier um hilfe. hier der quellcode:
hoffe das mir jemand dabei helfen kann. bin schon am verzweifeln.
MFG
ich habe ein kleines javaapplet geschriebn. dies beinhaltet zur zeit lediglich einen button und ein bild. wenn nun auf den button gedrückt wird soll das bild sich nach rechts bewegen. jedoch flackert / flimmert es sehr stark. hab hier schon im forum nach verschiedenen lösungen gesucht aber ich komme nicht wirklich dahinter wie ich das problem lösen kann. ich weiß das es an der repaint-methode liegt, die das bild anscheinend immer wieder neu zeichnet. daher bitte ich euch hier um hilfe. hier der quellcode:
Code:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import java.text.*;
import java.applet.*;
import java.awt.Button;
import javax.swing.Timer;
public class Festplatte extends Applet
{
//Variablen-----------------
Image festplatte;
int hdd_x=100;
int hdd_y=200;
private Button hdd_einbauen;
//--------------------------
public void init()
{
this.setLayout(null);
Color c_background = new Color(255,255,255);
this.setBackground(c_background);
this.setVisible(true);
MediaTracker mtracker = new MediaTracker(this);
festplatte = getImage(getCodeBase(), "festplatte.jpg");
mtracker.addImage(festplatte, 0);
try{mtracker.waitForAll();}
catch(InterruptedException ex){}
Button hdd_einbauen = new Button("Festplatte einbauen");
hdd_einbauen.setBounds(480,200,150,20);
//Buttons damit sie funktionieren------------------
hdd_einbauen.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//hdd_x=hdd_x+100;
//repaint();
festplatte_bewegen fb = new festplatte_bewegen();
fb.start();
repaint();
}
});
add(hdd_einbauen);
//--------------------------------------------------
} //public void init()
public void paint(Graphics g)
{
g.drawImage(festplatte,hdd_x,hdd_y,this);
paint(g);
} //public void paint(Graphics g)
class festplatte_bewegen extends Thread
{
public void run()
{
for(int i=0;i<=500;hdd_x++)
{
repaint();
try
{
festplatte_bewegen.sleep(10);
}
catch(InterruptedException ie){}
}
}
} //class festplatte_bewegen extends Thread
} //public class Festplatte extends Applet
hoffe das mir jemand dabei helfen kann. bin schon am verzweifeln.
MFG