deleguer la gestion des évenements dans une classe externe
1 réponse
julien
Bonjour
J'ai créer un DefaultTableModel pour gérer le comprtement de ma JTable.
Dans le DefaultTableModel, je voudrais gérer les événements dans une
classe externe.
Jusqu'à maintenant, je gérer tout dans la même classe, donc j'avais
quelque chose du genre:
tableModel.addTableModelListener(new TableModelListener() {
public void .....
//le reste de mon code formant la class
});
Mainteant, je voudraid faire quelque chose du genre:
tableModel.addTableModelListener(new MyTableEventsHandler());
avec:
public class MyTableEventsHandler {
public void ...
}
Mais quend j'essaie ça, j'ai l'erreur:
addTableModelListener(javax.swing.event.TableModelListener) in
javax.swing.table.AbstractTableModel cannot be applied to
(MyTableEventsHandler)
J'ai essayé de changer MyTableEventshander en public class
MyTableEventshander extends TableModelListener mais j'obtiens: "cannot
resolve symbol class TableModelListener".
Je n'ai pas réussi à trouver d'exemple de code sur le web.*
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Thibaut Desmarest
julien wrote:
Bonjour J'ai créer un DefaultTableModel pour gérer le comprtement de ma JTable. Dans le DefaultTableModel, je voudrais gérer les événements dans une classe externe.
Jusqu'à maintenant, je gérer tout dans la même classe, donc j'avais quelque chose du genre: tableModel.addTableModelListener(new TableModelListener() { public void ..... //le reste de mon code formant la class });
Mainteant, je voudraid faire quelque chose du genre: tableModel.addTableModelListener(new MyTableEventsHandler());
avec: public class MyTableEventsHandler { public void ...
}
Mais quend j'essaie ça, j'ai l'erreur: addTableModelListener(javax.swing.event.TableModelListener) in javax.swing.table.AbstractTableModel cannot be applied to (MyTableEventsHandler)
J'ai essayé de changer MyTableEventshander en public class MyTableEventshander extends TableModelListener mais j'obtiens: "cannot resolve symbol class TableModelListener".
Je n'ai pas réussi à trouver d'exemple de code sur le web.*
Julien
Cette erreur veut dire que tu ne passes pas les bons types d'arguments à la fonction. La traduction ca serait :
La méthode addTableModelListener(TableModelListener) de la classe AbstractTableModel attend un argument de type TableModelListener.
Donc tu en déduis que ta classe MyTableEventsHandler n'est pas de type TableModelListener.
Là deux solutions, soit en effet tu crées une interface dérivée de TableListener grâce au mot clé extends (mais je vois vraiment pas l'interêt).
Soit tu implementes cette interface (c'est le plus logique)
public class MyTableEventsHandler implements TableModelListener {
Tu n'as plus qu'à écrire les bonnes méthodes.
P.S : Quant à ton cannot resolve symbol class TableModelListener, tu as simplement du oublier de dire à java un petit mot d'amour du style:
import javax.swing.event.*;
;)
Bonne route,
Thibaut
julien wrote:
Bonjour
J'ai créer un DefaultTableModel pour gérer le comprtement de ma JTable.
Dans le DefaultTableModel, je voudrais gérer les événements dans une
classe externe.
Jusqu'à maintenant, je gérer tout dans la même classe, donc j'avais
quelque chose du genre:
tableModel.addTableModelListener(new TableModelListener() {
public void .....
//le reste de mon code formant la class
});
Mainteant, je voudraid faire quelque chose du genre:
tableModel.addTableModelListener(new MyTableEventsHandler());
avec:
public class MyTableEventsHandler {
public void ...
}
Mais quend j'essaie ça, j'ai l'erreur:
addTableModelListener(javax.swing.event.TableModelListener) in
javax.swing.table.AbstractTableModel cannot be applied to
(MyTableEventsHandler)
J'ai essayé de changer MyTableEventshander en public class
MyTableEventshander extends TableModelListener mais j'obtiens: "cannot
resolve symbol class TableModelListener".
Je n'ai pas réussi à trouver d'exemple de code sur le web.*
Julien
Cette erreur veut dire que tu ne passes pas les bons types d'arguments à
la fonction. La traduction ca serait :
La méthode addTableModelListener(TableModelListener) de la classe
AbstractTableModel attend un argument de type TableModelListener.
Donc tu en déduis que ta classe MyTableEventsHandler n'est pas de type
TableModelListener.
Là deux solutions, soit en effet tu crées une interface dérivée de
TableListener grâce au mot clé extends (mais je vois vraiment pas
l'interêt).
Soit tu implementes cette interface (c'est le plus logique)
public class MyTableEventsHandler implements TableModelListener {
Tu n'as plus qu'à écrire les bonnes méthodes.
P.S : Quant à ton cannot resolve symbol class TableModelListener,
tu as simplement du oublier de dire à java un petit mot d'amour du style:
Bonjour J'ai créer un DefaultTableModel pour gérer le comprtement de ma JTable. Dans le DefaultTableModel, je voudrais gérer les événements dans une classe externe.
Jusqu'à maintenant, je gérer tout dans la même classe, donc j'avais quelque chose du genre: tableModel.addTableModelListener(new TableModelListener() { public void ..... //le reste de mon code formant la class });
Mainteant, je voudraid faire quelque chose du genre: tableModel.addTableModelListener(new MyTableEventsHandler());
avec: public class MyTableEventsHandler { public void ...
}
Mais quend j'essaie ça, j'ai l'erreur: addTableModelListener(javax.swing.event.TableModelListener) in javax.swing.table.AbstractTableModel cannot be applied to (MyTableEventsHandler)
J'ai essayé de changer MyTableEventshander en public class MyTableEventshander extends TableModelListener mais j'obtiens: "cannot resolve symbol class TableModelListener".
Je n'ai pas réussi à trouver d'exemple de code sur le web.*
Julien
Cette erreur veut dire que tu ne passes pas les bons types d'arguments à la fonction. La traduction ca serait :
La méthode addTableModelListener(TableModelListener) de la classe AbstractTableModel attend un argument de type TableModelListener.
Donc tu en déduis que ta classe MyTableEventsHandler n'est pas de type TableModelListener.
Là deux solutions, soit en effet tu crées une interface dérivée de TableListener grâce au mot clé extends (mais je vois vraiment pas l'interêt).
Soit tu implementes cette interface (c'est le plus logique)
public class MyTableEventsHandler implements TableModelListener {
Tu n'as plus qu'à écrire les bonnes méthodes.
P.S : Quant à ton cannot resolve symbol class TableModelListener, tu as simplement du oublier de dire à java un petit mot d'amour du style: