Newsgroup: it.comp.java
Titolo: Da applet a app.

(estrema ingnoranza:(
sto cercando di trasformare una applet in una app.
Vorrei sapere dove mettere il seguente codice che nell'applet era in init()
:
offscreenImg = createImage( getSize().width, getSize().height);
offscreen = offscreenImg.getGraphics();
inoltre perche' non va il run()?.. "loop" è sempre =0!
Qualcuno potrebbe sistemarmela?.. grazie!
///codice completo//////
import java.awt.*;
import java.awt.event.*;
class prova extends Frame implements Runnable
{
 Image offscreenImg;
 Graphics offscreen;
 Thread runner;
 int loop ;
 prova(String titolo) {
 super(titolo);
    Button button = new Button("ok");
 setLayout(new FlowLayout());
 add(button);
 button.setFont(new Font("SansSerif", Font.BOLD,10));
 // Add button listener.
 button.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
   System.out.println("prova");
   }
 });
 }
 ///////
 public static void main(String arg[]){
   prova app =new prova("test prova");
 app.pack();
 app.resize(400,300);
 app.show();
 // Add window listener.
 app.addWindowListener(new WindowAdapter(){public void
windowClosing(WindowEvent e){System.exit(0);} });
 }
 ///////
 public void start() {
        if (runner == null) {
            runner = new Thread(this);
            runner.start();
        }
 }
  public void stop() {
        if (runner != null){
            runner = null;
        }
 }
    public void run() {
        Thread thisThread = Thread.currentThread();
        while (runner == thisThread){
  loop++;
  if(loop>50)loop=0;
  repaint();
  try  {  Thread.sleep(100); } catch (InterruptedException e) { }
  }
 }
 public void update(Graphics screen) { paint(screen);}
 ///////
 public void paint(Graphics screen){
    offscreen.setColor(Color.gray);
    offscreen.fill3DRect(10+loop,10+loop,40,40,true);
    offscreen.drawString( Integer.toString(loop), 22, 90);
    screen.drawImage(offscreenImg, 0, 0, this);
    }
public void destroy() {     offscreen.dispose();  }
}

Qualcuno potrebbe sistemarmela?.. grazie!
Corretta al volo, mi sembra un po "sporca" ma gira:
[SOURCE]
import java.awt.*;
import java.awt.event.*;

		app.init();
 
	}
 
	///////
	public void init()
	{
		offscreenImg = createImage( getSize().width,
getSize().height);
		offscreen = offscreenImg.getGraphics();
		startThread();
	}
 
	public void startThread() {
		if (runner == null) {
			runner = new Thread(this);
			runner.start();
		}
	}
	public void stop() {
		if (runner != null){
			runner = null;
		}
	}
	public void run() {
		Thread thisThread = Thread.currentThread();
		while (runner == thisThread){
			loop++;
			if(loop>50)loop=0;
			repaint();
			try  {  Thread.sleep(100); } catch
(InterruptedException e) { }
		}
	}
 
 
 
	public void update(Graphics screen) { paint(screen);}
	///////
	public void paint(Graphics screen){
		if(offscreen==null)
			return;
		offscreen.setColor(Color.gray);
		offscreen.fill3DRect(10+loop,10+loop,40,40,true);
		offscreen.drawString( Integer.toString(loop), 22, 90);
		screen.drawImage(offscreenImg, 0, 0, this);
	}
 
 
 
	public void destroy() {     offscreen.dispose();  }
 
}
[/SOURCE]
Una raccomandazione: STUDIA!
Ciao,
Maurizio.
La forza di gravità è un falso mito,
è la Terra che succhia!

Grazie Maurizio, funziona!!
...purtroppo il mio manuale riporta solo poche righe selle App. .. devo
procurarmene un altro!:-/
Una domanda: perche' lo "0" height  non è dove finisce la barra  del titolo
finestra?..
Le coordinate  x 0 y 0 sono sotto la barra titolo finestra!!!.. si pou' fare
qualcosa
o devo modificare tutto?
 (un casino, non parlo di quel semplice esempio ma dell'applet da adattare)


hai cercato con 
http://groups.google.com
 ? Ricordo almeno un thread dal
titolo "Applicazione ed Applet insieme" (circa 3 mesi fa...), con tanto
di codice d'esempio.
Forse puo` interessarti darci un'occhiata.
-- 
Ciao,  |     Gott weiss ich will kein Engel sein
Matteo |                     -- Rammstein, Engel

finestra?..
Le coordinate di un Component partono dall'angolo in alto a
sinistra... Se scrivi con paint() direttamente sul Frame (che è un
Container), ricordati che hai un bordo superiore pari a Frame.get
Insets().top; altrimenti per aggirare il problema aggiungi un Panel al
Frame e sovrascrivi il paint() del Panel (ah, il Panel è anche lui un
Container, per quanto poco forse avrà un Panel.getInsets().top...).
Buon divertimento,
Maurizio.
REFERENCES: 	java.awt.Container.getInsets();
		java.awt.Insrets.top;


 Forse puo` interessarti darci un'occhiata.
grazie, lo faro'! :)