HAllo an alle!
ich habe kleine Probleme, ich möchte in einem Frame paar bilder nacheinader laden und zeigen und dazu mit einem Button Starten und Stoppen
ich hab folgende Code geschrieben aber leider funktioniert nicht
kann jemandem mir helfen
wo mache ich den hier fehler?
package iki;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Animation extends JFrame implements Runnable,ActionListener
{
Thread th;
Image[] arImg;
int actimage;
boolean start=true;
boolean stop=false;
public static void main(String[] args)
{
Animation wnd = new Animation();
wnd.setSize(700,800);
wnd.setVisible(true);
wnd.startAnimation();
}
public Animation()
{
super("Bitmap-Folge");
Container contentPane=getContentPane();
contentPane.setLayout(new BorderLayout());
JButton button=new JButton("start/stop");
button.addActionListener(this);
contentPane.add("South",button);
}
public void startAnimation()
{
th = new Thread(this);
actimage = -1;
th.start();
}
public void stopAnimation()
{
th.stop();
}
public void run()
{
//Bilder laden
arImg = new Image[5];
MediaTracker mt = new MediaTracker(this);
Toolkit tk = getToolkit();
for (int i = 1; i <= 5; ++i) {
arImg[i-1] = tk.getImage("/home/babur/animation/berfin1"+i+".jpg");
mt.addImage(arImg[i-1], 0);
actimage = -i;
repaint();
try {
mt.waitForAll();
} catch (InterruptedException e) {
//nothing
}
}
//Animation beginnen
actimage = 0;
while (true) {
repaint();
actimage = (actimage + 1) % 5;
try {
Thread.sleep(1500);
} catch (InterruptedException e) {
//nichts
}
}
}
public void paint(Graphics g)
{
if (actimage < 0) {
g.drawString("Lade Bitmap "+(-actimage),10,50);
} else {
g.drawImage(arImg[actimage],10,30,this);
}
}
public void actionPerformed(ActionEvent event){
if(event.getActionCommand().equalsIgnoreCase("start/stop")){
start=!start;
if(start==true){
startAnimation();
}
else {
stopAnimation();
}
}
}
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
}
ich habe kleine Probleme, ich möchte in einem Frame paar bilder nacheinader laden und zeigen und dazu mit einem Button Starten und Stoppen
ich hab folgende Code geschrieben aber leider funktioniert nicht
kann jemandem mir helfen
wo mache ich den hier fehler?

package iki;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Animation extends JFrame implements Runnable,ActionListener
{
Thread th;
Image[] arImg;
int actimage;
boolean start=true;
boolean stop=false;
public static void main(String[] args)
{
Animation wnd = new Animation();
wnd.setSize(700,800);
wnd.setVisible(true);
wnd.startAnimation();
}
public Animation()
{
super("Bitmap-Folge");
Container contentPane=getContentPane();
contentPane.setLayout(new BorderLayout());
JButton button=new JButton("start/stop");
button.addActionListener(this);
contentPane.add("South",button);
}
public void startAnimation()
{
th = new Thread(this);
actimage = -1;
th.start();
}
public void stopAnimation()
{
th.stop();
}
public void run()
{
//Bilder laden
arImg = new Image[5];
MediaTracker mt = new MediaTracker(this);
Toolkit tk = getToolkit();
for (int i = 1; i <= 5; ++i) {
arImg[i-1] = tk.getImage("/home/babur/animation/berfin1"+i+".jpg");
mt.addImage(arImg[i-1], 0);
actimage = -i;
repaint();
try {
mt.waitForAll();
} catch (InterruptedException e) {
//nothing
}
}
//Animation beginnen
actimage = 0;
while (true) {
repaint();
actimage = (actimage + 1) % 5;
try {
Thread.sleep(1500);
} catch (InterruptedException e) {
//nichts
}
}
}
public void paint(Graphics g)
{
if (actimage < 0) {
g.drawString("Lade Bitmap "+(-actimage),10,50);
} else {
g.drawImage(arImg[actimage],10,30,this);
}
}
public void actionPerformed(ActionEvent event){
if(event.getActionCommand().equalsIgnoreCase("start/stop")){
start=!start;
if(start==true){
startAnimation();
}
else {
stopAnimation();
}
}
}
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
}