Newsgroup: it.comp.java
Titolo: Aiuto visualizzatore immagini

Ciao a tutti ho da poco cominciato a programmare in java e ho un
problema che non capisco come risolvere:
ho scritto i due seguenti programmi
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
public class liste1 extends Applet
{
int z;
Image a;
List lista=new List(0,false);
Label text=new Label("Selezionare l'astronave desiderata");
public liste1()
{
lista.add("Millenium Falcon");
lista.add("X-Wing");
lista.add("Tie-Fighter");
lista.addItemListener(new ascoltaLista());
}
public void init() {
new liste();
a = getImage(getDocumentBase(),"a.gif");
setLayout(new BorderLayout());
add(lista,BorderLayout.WEST);
add(text,BorderLayout.SOUTH);
}
class ascoltaLista implements ItemListener
{
public void itemStateChanged(ItemEvent e)
{
int indice=((Integer) e.getItem()).intValue();
if (indice==0) text.setText("La mitica astronave di Ian Solo");
if (indice==1) text.setText("I caccia stellari della alleanza");
if (indice==2) text.setText("I terribili caccia dell'impero");
} 
} 
public void paint(Graphics g){
if (z==1) g.drawImage(a,150,150,this);
}
} 
che visualizza un applet dove sulla sinistra c'è un elenco di voci che
si possono selezionare, e in basso una "Label" che ha lo scopo di
visualizzare una descrizione in base a cosa si è selezionato
dall'elenco.
L'altra applicazione
import java.lang.System;
import java.lang.String;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.File;
import java.io.IOException;
public class DataIOApp {
	public static void main(String args[]) throws IOException {
		File file = new File("1.txt");
		FileInputStream inFile = new FileInputStream(file);
		DataInputStream inStream = new DataInputStream(inFile);
		System.out.println(inStream.readLine());
		inStream.close();
		inFile.close();
}
}
che invece legge del testo da un file e lo visualizza a schermo.
Sono entrambi funzionanti e senza problemi di sorta.
Ora il mio problema:
Vorrei che con il primo applet riuscissi a visualizzare sulla destra(la
parte senza nulla dell'applet) una foto di ciò che ho scelto dalla lista
e il testo visualizzato in fondo invece che scritto nel codice sorgente
letto tramite il secondo programma(ovviamente messo nell'applet) da
diversi file nominati falcon.txt, tie-fighter.txt ecc.
In pratica vorrei realizzare come nel c una cosa del tipo:
if (indice==0) leggi dal file falcon.txt la descrizione e visualizza
l'immagine falcon.gif
if (indice==1) leggi dal file x-wing.txt la descrizione e visualizza
l'immagine x-wing.gif
ecc
Aiutatemi perchè ho provato in vari modi ma non ho trovato nessuna
soluzione.
Grazie a tutti Alle
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Grazie a tutti Alle
Per la lettura dal file sei a posto, anziché stampare la stringa la
"returni" al chiamante o inserisci il secondo codice direttamente nella
applet; poi anziché avere l'immagine a avrai tre immagini, ognuna delle
quali contiene x-wing.gif ecc. ognuna caricata come hai fatto per a nel
metodo init(); il corpo della if sarà: if(indice==0) {
text.setText(testo1);
a=a1;
}
nota che a=a1 è un assegnazione tra reference, quindi non c'è spreco di
memoria; infine, carica in init il testo in tre stringhe, testo1, testo2 e
testo3. La cosa migliore in effetti sarebbe avere un array di stringhe e uno
di testo:
String[] testo;
Image[] ims;
in init le carichi, poi al posto della if avrai:
text.setText(testo[indice]);
a=ims[indice];
 e tutto va a posto. Ciao!
--
Paolo Giarrusso
Per rispondere togliere solo "TOGLIMI" dall'indirizzo, non _spam.