PDA

View Full Version : [java] immagini in movimento, help please!


Diego Valle
01-11-2009, 19:24
Ciao,

vorrei chiedervi un aiuto su un semplice programma che sto scrivendo.
Voglio creare un JFrame, che contiene un JToolBar, che a sua volta contiene un disegnino realizzato con le classi grafiche di java (Graphics).
Vorrei poter 'muovere' il disegnino lungo l'asse x a tempo di timer: ovvero l'utente clicca su un bottone 'start' e da quel momento con un timer ogni tot millisecondi
parte un task periodico che aggiorna il disegnino dentro la JToolBar e lo fa spostare.
Il mio problema è: come faccio ad accedere al JFrame creato dalla MainClass da dentro la classe Task? (vedere sotto). Posso farlo? O c'è un altro modo?

Grazie per l'aiuto,
Diego.


classe MAINCLASS:

package package1;

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
import java.util.Timer;
import java.util.TimerTask;

public class MainClass extends JFrame implements ActionListener{

Timer t;
JToolBar tool;
Disegno d;
int posizioneX;

public MainClass(){

posizioneX = 1;
d = new Disegno(posizioneX);
t = new Timer();

setSize(1000,200);
tool = new JToolBar();
JButton startButton = new JButton("START");
startButton.addActionListener(this);
startButton.setActionCommand("via");
tool.add(startButton);
tool.add(d);
add(tool);

}

public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("via")){
System.out.println("startato!");

t.schedule(new Task(posizioneX++),0,3000);
}
}

public static void main(String[] args){
(new MainClass()).setVisible(true);

}
}


classe TASK:

package package1;

import java.util.TimerTask;

public class Task extends TimerTask{

int param;

public Task(int param){
this.param = param;
}

public void run() {

//QUI VORREI FARE
//
//tool.remove(
//tool.add(new Disegno(par));
//repaint();
//setVisible(true);
//
//MA COME FACCIO AD ACCEDERE A tool DA QUESTA CLASSE?
}
}