heritage mutliple en java

heritage mutliple en java - Java - Programmation

Marsh Posté le 09-03-2005 à 13:14:12    

Bonjours,
 
Je suis actuellement en Bts informatique, et je dois réaliser un projet concernant une station meteo.
Seulement j'ai un probleme au niveau d'un heritage:
j'ai une classe I_Main qui doit heriter des classe JFrame et TimerTask, mais celles si ne sont pas des interfaces et donc je ne sait pas comment faire pour faire cet heritage.
Si vous avez des solutions, merci de m'aider.
 
Caroline

Reply

Marsh Posté le 09-03-2005 à 13:14:12   

Reply

Marsh Posté le 09-03-2005 à 13:16:06    

1) tu ne peux pas faire d'héritage multiple
2) ca n'a pas bcp de sens un object qui serait à la fois une JFrame et une TimerTask  
 
qu'est ce qui t'empêche de faire 2 objets différents pour ces 2 taches ?

Reply

Marsh Posté le 09-03-2005 à 14:04:31    

J'explique mieux ce que je veux faire:
 

Reply

Marsh Posté le 09-03-2005 à 14:07:01    

j'ai une ihm qui appele toute les 6 secondes une methode qui lit des valeurs dans une bases de données, puis les affiche.
Le truc c'est que mon ihm est une JFrame , mais vu qu'elle a un temps de rafrachissement il faut qu'elle est aussi un timer qui appele la fonction lireValeur().
 
voila!!

Reply

Marsh Posté le 09-03-2005 à 14:09:12    

j'ai une ihm qui toutes les 6s appele la fonction lireValeur() puis les affiche sur l'ihm.
Mais le truc c'est que tout d'abord mon ihm est une Jfame, mais que vu qu'elle a un temps de rafraichissement il fo qu'elle ait un timee pour appeler la fonction.
Voila

Reply

Marsh Posté le 09-03-2005 à 14:09:43    

poypoy31 a écrit :

il faut qu'elle est aussi un timer qui appele la fonction lireValeur().


 
il faut qu'elle est, pas il faut qu'elle soit. CQFD, l'héritage de timer est en trop, c'est une association.


---------------
Moi, j'aime pas les signatures - J'écoute actuellement :
Reply

Marsh Posté le 09-03-2005 à 14:13:46    

coffeeman a écrit :

il faut qu'elle est, pas il faut qu'elle soit. CQFD, l'héritage de timer est en trop, c'est une association.


je dirais même plus : il faut qu'elle ait [:aloy]


Message édité par benou le 09-03-2005 à 14:13:57
Reply

Marsh Posté le 09-03-2005 à 14:14:49    

benou a écrit :

je dirais même plus : il faut qu'elle ait [:aloy]


 
plaintes [:aloy]


---------------
Moi, j'aime pas les signatures - J'écoute actuellement :
Reply

Marsh Posté le 09-03-2005 à 14:16:44    

bref, pour ton histoier, tu t'en sortira très bien avec une sous classe dans ta JFrame ...
 
exemple :
 

Code :
  1. TimerTask task = new TimerTask() {
  2.    public void run() {
  3.        lireValeur(); // la méthode est accessible, puisqu'on est dans une inner classe
  4.        // mettre la valeur dans ton ihm pour qu'elle se raffraichisse
  5.    }
  6. };
  7. tonTimer.schedule(task, 6000);


Message édité par benou le 09-03-2005 à 14:17:24
Reply

Marsh Posté le 09-03-2005 à 14:17:15    


hein ? [:dawa]

Reply

Marsh Posté le 09-03-2005 à 14:17:15   

Reply

Marsh Posté le 09-03-2005 à 14:20:38    

Mais ce morceau de code ca se met dans la classe directement (j'ai jamais utiliser de innerclasse).

Reply

Marsh Posté le 09-03-2005 à 14:21:24    

mon ihm est definie par la claase I_Main

Reply

Marsh Posté le 09-03-2005 à 14:24:27    

poypoy31 a écrit :

Mais ce morceau de code ca se met dans la classe directement (j'ai jamais utiliser de innerclasse).


ca se met dans une méthode ... dans le constructeur, ou dans une méthode init ... enfin là où tu veux déclencher le rafraichissement [:spamafote]
 
 
Tu pourrais même le sortir de la JFrame et la mettre deouis l'exterieur ...
nraynaud (qui a fait un bref passage ici) te dirait que tu n'as pas à surcharger JFrame, qu'une JFrame ca s'utilise, ca s'hérite pas ...

Reply

Marsh Posté le 09-03-2005 à 14:25:12    


playnthes [:aloy]


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 09-03-2005 à 14:37:30    

Merci ca marche!!
Tu tues tout

Reply

Marsh Posté le 09-03-2005 à 15:29:30    

le probleme que j'ai maintenant c que au bout de 6s la valeur s'affiche et c'est tout, elle se rafraichi jamais

Reply

Marsh Posté le 09-03-2005 à 15:30:22    

Le code c'est:
 Timer timer = new Timer();
     
    public void initTimer(){
         
        TimerTask task = new TimerTask() {  
             
           public synchronized void run() {  
               AfficheVal();
          }  
        };  
     timer.schedule(task, 1000);
    }

Reply

Marsh Posté le 09-03-2005 à 15:31:31    

enfin la j'ai mi 1s

Reply

Marsh Posté le 09-03-2005 à 15:39:56    

ouais, je me suis planté : c'est timer.schedule(task, 0, 6000);

Reply

Marsh Posté le 09-03-2005 à 17:10:10    

Merci c'et parfait, ca marche nikel!!!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed