IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java ME Discussion :

[J2ME][MIDlet]rafraichir une image sans toucher au form?


Sujet :

Java ME

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 40
    Points
    40
    Par défaut [J2ME][MIDlet]rafraichir une image sans toucher au form?
    Voilà tout est dit dans l'énoncé du sujet. Je dois faire une interface pour une application qui est sur téléphone portable. Bien sur, je ne connais pas grand chose.

    J'arrive à récupérer une image, qui change, sur le net, et à l'afficher. Mon but est de faire des menus, j'ai commencé, mais à cause de l'image, ça ne fonctionne pas bien.
    De plus, je cherche à n'avoir qu'une image. Or avec mon code, j'ajoute à chaque fois une nouvelle image au form alors que je voudrais la remplacer. Si quelqu'un a une idée, merci d'avance à tout le monde.
    Voici mon code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
    import javax.microedition.io.*;
    import java.io.*;
     
    public class class extends MIDlet implements Runnable, CommandListener
    {
    	private Display display;
    	private String URL = "adresse_de_l_image";
    	private Form formImage;
    	private Image im;
    	private Thread t1,moribund;
    	private int mode;
    	private boolean stopThread = false;
    	private Command exitCommand,stoprefreshCommand,autorefreshCommand,sortirCommand;
     
    	public class()
    	{
    		autorefreshCommand = new Command( "Rafraichissement auto",Command.SCREEN, 1);
    		stoprefreshCommand = new Command( "Arret Rafraichissement",Command.SCREEN, 1);
    		sortirCommand= new Command("Sortir",Command.SCREEN, 1);
    		exitCommand = new Command("Quitter",Command.SCREEN, 1);
    		formImage = new Form("Simple Image Test");
    		formImage.addCommand(autorefreshCommand);
            formImage.addCommand(stoprefreshCommand);
            formImage.addCommand(sortirCommand);
            formImage.addCommand(exitCommand);
    		t1 = new Thread(this);
    		t1.start();
    	}
     
    	public void startApp() 
    	{
    		display = Display.getDisplay(this);
    	}
     
    	public void pauseApp() { }
    	public void destroyApp(boolean unconditional) 
    	{
    		exitMIDlet();
    	}
     
    	private Image getImage(String url) throws IOException
    	{
    		HttpConnection connection = (HttpConnection) Connector.open(url);
    		DataInputStream iStrm = connection.openDataInputStream();
    		Image im = null;
     
    		try 
    		{
    			byte imageData[];
    			ByteArrayOutputStream bStrm = new ByteArrayOutputStream();
    			int ch;
    			while ((ch = iStrm.read()) != -1)
    				bStrm.write(ch);
    			imageData = bStrm.toByteArray();
    			bStrm.close();
    			im = Image.createImage(imageData, 0, imageData.length);
    		} 
    		finally 
    		{
    			if (iStrm != null)
    				iStrm.close();
    			if (connection != null)
    				connection.close();
    		}
    		return (im == null ? null : im);
    	}
     
    	/* (non-Javadoc)
    	 * @see java.lang.Runnable#run()
    	 */
    	public void run() 
    	{
    		// TODO Auto-generated method stub
    		while(true)
    		{
    			try {
    		        im = getImage(URL);
    		        formImage.append(im);
    		        formImage.setCommandListener(this);
    		      } catch (Exception ex) {
    		        System.out.println(ex);
    		      }
    		      display.setCurrent(formImage);
     
    		      try {
    				Thread.sleep(500);
    			} catch (InterruptedException e) {
    				e.printStackTrace();
    			}
    			formImage.deleteAll();
    		}
    	}
     
        public void exitMIDlet()
        {
            notifyDestroyed();
        }
     
        public synchronized void stop() {
            this.stopThread = true;
        }
        public synchronized void testFin() throws InterruptedException {
                if( stopThread ) {
                        throw new InterruptedException();
                } 
        }
     
        public void commandAction(Command c, Displayable d) 
        {
            String label = c.getLabel();
            if(label.equals("Rafraichissement auto")) 
            {
            	formImage.deleteAll();
            	display = Display.getDisplay(this);
            }
            if(label.equals("Arret Rafraichissement")) 
            {
            	formImage.deleteAll();
            	display = Display.getDisplay(this);
            	try {
    				Thread.sleep(10000);
    			} catch (InterruptedException e) {
    				e.printStackTrace();
    			}
            	display = Display.getDisplay(this);
            }
            if(label.equals("Sortir")) 
            {
            	try {
    				testFin();
    			} catch (InterruptedException e) {
    				e.printStackTrace();
    			}
    			while(label.equals("Sortir"))
    			{
    				formImage.deleteAll();
    	        }
            }
            if(label.equals("Quitter")) 
            {
              destroyApp(true);
            }
        }
    }
    Si tu tapes ta tête contre une cruche et que ça sonne creux, ce n'est pas forcément la cruche qui est vide !!
    Mes topics sont tabous, vous en viendrez tous à bout.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Points : 40
    Points
    40
    Par défaut
    bon déjà j'ai trouvé un truc pour faire un pause pour le thread :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            if(label.equals("Arret Rafraichissement")) 
            { 
    	stopThread = false;
    	t1.run();
            }
    stopThread est un boolean que je mets à true, et le que j'avais je le remplace par Cela me donne le même résultat, mais me permet de stopper le thread. Je ne sais pas si cette méthode est bonne mais ça marche. Par contre, je n'ai toujours pas résolu mais problème d'affichage, donc si quelqu'un a une idée, elle est toujours la bienvenue
    Si tu tapes ta tête contre une cruche et que ça sonne creux, ce n'est pas forcément la cruche qui est vide !!
    Mes topics sont tabous, vous en viendrez tous à bout.

Discussions similaires

  1. [C#]Rafraichir une image
    Par Scorff dans le forum ASP.NET
    Réponses: 7
    Dernier message: 21/06/2013, 18h53
  2. Réponses: 3
    Dernier message: 20/03/2012, 20h05
  3. Afficher une image sans URL dans un forum
    Par Vanesse dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 01/03/2006, 17h55
  4. [Rafraichir] Rafraichir une page sans perdre mes champs
    Par ozzmax dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/11/2005, 17h54
  5. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 19h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo