Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

JTable empecher la modification du contenu des cellules?

6 réponses
Avatar
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 d=E8s 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.

6 réponses

Avatar
Kupee
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)

Avatar
Ataya
Alors, je suis debutant donc je ne sait pas comment 'Surcharger' une
methode...
J'ai bien un tableModel
Avatar
Kupee
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)

Avatar
Simon OUALID
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

Avatar
Francis JUGE-BOIRARD
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...

Avatar
Ataya
Merci a tous en fait j'ai bien 'Surchargé' cette methode, mais dans
mon DefaultTableModel Et ca marche impec' encore merci