JTable empecher la modification du contenu des cellules?

Le
Ataya
Donc ma question est dans le titre: Comment empecher l'utilisateur de
modifier le contenu d'une cellule?

Apparement il sagirait de la methode: getCellSelectionEnabled()
mais je ne sait pas comment l'utilisercar si j'ecris :
tableau.getCellSelectionEnabled(false);
il me sort: incompatible avec l'argument boolean.

En fait au depart mon probleme est le suivant: je veut compter les
Doubleclics de souris sur une ligne avec la methode e.getClickCount().
Le probleme est que ds le premier click, la selection se fait sur la
cellule et le prog ne compte plus les clics ce qui fait que je n'arrive
jamais a detecter l'evenement doubleclic.

Merci d'avance.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Kupee
Le #199628
Ataya wrote:
Donc ma question est dans le titre: Comment empecher l'utilisateur de
modifier le contenu d'une cellule?

Apparement il sagirait de la methode: getCellSelectionEnabled()
mais je ne sait pas comment l'utilisercar si j'ecris :
tableau.getCellSelectionEnabled(false);
il me sort: incompatible avec l'argument boolean.

En fait au depart mon probleme est le suivant: je veut compter les
Doubleclics de souris sur une ligne avec la methode e.getClickCount().
Le probleme est que dès le premier click, la selection se fait sur la
cellule et le prog ne compte plus les clics ce qui fait que je n'arrive
jamais a detecter l'evenement doubleclic.


Je dirais qu'il te faut ton propre tableModel qui surcharge la méthode
isCellEditable(int rowIndex, int columnIndex)

Ataya
Le #199627
Alors, je suis debutant donc je ne sait pas comment 'Surcharger' une
methode...
J'ai bien un tableModel
Kupee
Le #199625
Ataya wrote:
Alors, je suis debutant donc je ne sait pas comment 'Surcharger' une
methode...
J'ai bien un tableModel


Je pense qu'il faut que tu crées une classe qui étend DefaultTableModel
et tu crée dedans la méthode que je t'ai dis (surcharger signifie que tu
crée une méthode dont la définition est la même que celle de la classe
parente)

Simon OUALID
Le #199623
Ataya wrote:
Donc ma question est dans le titre: Comment empecher l'utilisateur de
modifier le contenu d'une cellule?



Il suffit de surcharger isCellEditable(isCellEditable(int rowIndex, int
columnIndex) de AbstractTableModel pour qu'elle renvoie toujours false.

http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/table/AbstractTableModel.html#isCellEditable(int,%20int)

public boolean isCellEditable(int x, int y) {
return false;
}

Symon

Francis JUGE-BOIRARD
Le #200439
Donc ma question est dans le titre: Comment empecher l'utilisateur de
modifier le contenu d'une cellule?

Apparement il sagirait de la methode: getCellSelectionEnabled()
mais je ne sait pas comment l'utilisercar si j'ecris :
tableau.getCellSelectionEnabled(false);
il me sort: incompatible avec l'argument boolean.

En fait au depart mon probleme est le suivant: je veut compter les
Doubleclics de souris sur une ligne avec la methode e.getClickCount().
Le probleme est que dès le premier click, la selection se fait sur la
cellule et le prog ne compte plus les clics ce qui fait que je n'arrive
jamais a detecter l'evenement doubleclic.

Merci d'avance.

Bonjour,

Encore plus simple, si la table n'est jamais "éditable".
Il faut surcharger le isCellEditable de JTable en lui faisant toujours retourner
false.

Pour savoir comment surcharger une méthode, je vous invite à parcourir un livre
sur java.

Dans les grande lignes :
il faut écrire une classe qui étend JTable, c'est dans cette classe que la
méthode isCellEditable est surclassé.

public classe MyJTable extends JTable
{
public boolean isCellEditable(int row, int column)
{
return (false);
}
}

Maintenant, pour instancier un MyJTable.
MyJTable table = new MyJTable (...).

Et voila, bon courage...

Ataya
Le #200409
Merci a tous en fait j'ai bien 'Surchargé' cette methode, mais dans
mon DefaultTableModel Et ca marche impec' encore merci
Publicité
Poster une réponse
Anonyme