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?
}
}
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?
}
}