Oppure

Loading
31/12/06 15:37
Fireantology
Salve a tutti, di seguito illustro brevemente il mio intento:
Ho un software didattico che simula un incrocio semaforico, il mio intento e di visualizzare avideo un'img jpg che rappresenta lo stato del semaforo. Il mio sftware tramite un Orologio scandisce i secondi e essendo quest'ultimo Observable tramite oppurtuni metodi rendo altre classi osservatori dell'orologio, in questo modo vorrei rendere la mia classe grafica observer dell'orologio(è in questo nessun problema) e quindi verificare lo stato del semaforo e aggiornare l'immagine(che è la cosa che non so fare) ogni sec.
Ci tenevo a precisare che i miei oggetti semaforo il cui stato va stampato sono 4... spero di essere stato chiaro e spero che qualcuno possa aiutarmi con un codice di esempio funzionante....
GRAZIE ancora:asd:
aaa
01/01/07 22:32
netarrow
potresti inserire l'immagine in un Canvas, a seconda dello stato modificare o cambiare proprio istanza Image, e dare repaint() ogni tot secondi.

Non so se mi spiego.
aaa
02/01/07 9:48
Fireantology
Non proprio, conosco bene java ma sulla parte grafica non so quasi niente, potresti postarmi un codice di esempio con l'inserimento di un'immagine jpg fatto in modo che poi con repaint possa cambiare l'immagine jpg...
Grazie in anticipo
aaa
03/01/07 21:22
netarrow
per fare quello che vuoi potresti creare un vettore di Image che contiene i vari stati e con un metodo tipo setState() cambi istanza di Image e poi dai repaint, tipo:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class Background extends Canvas {
private Image bg[];
private int i;

public Background() {
bg = new Image[3];
bg[0] = java.awt.Toolkit.getDefaultToolkit().getImage("Rosso.jpg");
bg[1] = java.awt.Toolkit.getDefaultToolkit().getImage("Arancio.jpg");
bg[2] = java.awt.Toolkit.getDefaultToolkit().getImage("Verde.jpg");
setVisible(true);
i = 0;
repaint();
}

public void setState(int state) {
i = state;
repaint();
}

public void paint(Graphics g) {
g.drawImage(bg[i], 10, 10, this);
}

}

public class test extends JFrame {
test() {
Background bg = new Background();
this.add(bg);
bg.setState(2);
setSize(700, 650);
setVisible(true);
}

public static void main(String args[]) {
new test();
}
}
Ultima modifica effettuata da netarrow 03/01/07 21:25
aaa
04/01/07 8:02
Fireantology
Grazie comuqnue avevo già risolto... più o meno in questo modo, penso che presto mi rifarò vivo per qualche altro problema.. Grazie
aaa