Newsgroup: it.comp.java
Titolo: [AIUTO] J2ME

Salve,
ho un prbl con j2me.. come mai in questa classe non mi funziona il
repaint/runnable? 
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;
class MyCanvas extends Canvas implements Runnable
{
Thread runner;
private MyStreamConnection sMyStreamConnection;
public MyCanvas(MyStreamConnection sMyStreamConnection)
{
this.sMyStreamConnection = sMyStreamConnection;
}
public void start()
{
runner = new Thread();
runner.start();
}
public void stop()
{
//runner.stop();
runner = null;
} 
public void run()
{
while (true)
{
repaint(); 
try
{
runner.sleep(20);
}
catch (InterruptedException e)
{
}
}
}
// public void update(Graphics g)
// {
// paint(g);
// }
int icount = 0;
public void paint(Graphics g)
{
System.out.println("RICARICO");
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(255, 0, 0);
g.drawRect(0, 0, getWidth()-1, getHeight()-1);
Font fMyFont = Font.getFont(Font.FACE_PROPORTIONAL, 
Font.STYLE_UNDERLINED, 
Font.SIZE_LARGE);
g.setColor(0, 0, 0);
g.setFont(fMyFont);
g.drawString("Al centro"+icount, getWidth()/2, getHeight()/2,
Graphics.TOP | Graphics.HCENTER);
icount++;
g.setColor(0, 255, 255);
g.fillRect(10, 10, getWidth()-20, 10);
//repaint();
}
}
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 }
Sosituisci 
 runner = new Thread();
con
 runner = new Thread(this);
E non postare due volte lo stesso messaggio (o non sei tu
http://www.newsland.it/nr/article/it.comp.java/7574.html
 ?)
E se posti del codice, cerca di fare in modo che compili e sia eseguibile
al primo colpo (nel tuo, mencavano parecchi import e un main)
Ciao


 Ciao
Ciao e Grazie,
Michele


 Puoi postare il codice modificato?
No, non ti serve un main, è solo per fare dei test.
Qui c'è la tua classe modificata. A me funziona (almeno, credo): ogni 200
millisecondi, riscrive la riga 'Al centro x' con x incrementato.
------- begin -------
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JFrame;
class MyCanvas extends Canvas implements Runnable {
   Thread runner;
   public void start() {
      runner = new Thread(this);
      runner.start();
   }
   public void stop() {
      runner = null;
   }
   public void run() {
      while (true) {
         repaint();
         try {
            runner.sleep(200);
         } catch (InterruptedException e) {
         }
      }
   }
   int icount = 0;
   public void paint(Graphics g) {
      System.out.println("RICARICO");
      g.setColor(new Color(255, 255, 255));
      g.fillRect(0, 0, getWidth(), getHeight());
      g.setColor(new Color(255, 0, 0));
      g.drawRect(0, 0, getWidth()-1, getHeight()-1);
      g.setColor(new Color(0, 0, 0));
      g.drawString("Al centro"+icount, getWidth()/2, getHeight()/2);
      icount++;
      g.setColor(new Color(0, 255, 255));
      g.fillRect(10, 10, getWidth()-20, 10);
   }
   public static void main(String[] args) {
      MyCanvas c = new MyCanvas();
      JFrame f = new JFrame("Test canvas");
      f.getContentPane().add(c);
      f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
      c.start();
      f.setSize(new Dimension(200,100));
      f.setVisible(true);
   }
}
------- end -------
Ciao


fiveMilesOut ha scritto:
Ok, cosi' funziona anche a me. Il problema e' farlo funzionare con il WTK.
Puoi testarlo?
Grazie


 Grazie
Scusa l'ignoranza, ma cos'è il WTK?
