SSortTable

Résolu
lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 - 2 nov. 2006 à 15:05
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 3 nov. 2006 à 12:41
Bonjour,
J'utilise un SSortTable et je voudrais , si possible, lorsque je clique sur une entête de colonne faire une action bien précise. par défaut je crois que çà trie par ordre croissant ou décroissant et moi je voudrais cocher des cases.

merci de votre aide
bonne prog


lafolle

22 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
3 nov. 2006 à 10:38
Salut,

dans un mouseEvente tu fais :

public void mousePressed(MouseEvent e){
    int selectedCol = monTable.getTableHeader().columnAtPoint(e.getPoint());
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
2 nov. 2006 à 15:12
0
lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 7
2 nov. 2006 à 15:22
oui ici il ya de la doc
mais je ne comprend toujours pas comment checké des cases et non pas trier par ordre alpha.

merci encore


lafolle
0
lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 7
2 nov. 2006 à 16:13
aie en fait je ne comprend pas comment poser un listener sur une colonne précise... si çà fonctionne comme çà...


lafolle
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 7
2 nov. 2006 à 16:25
MouseListener mouseListener = new MouseAdapter(){
public void mouseClicked( MouseEvent e){
int selectedRow = emissionMoleculeTable.getSelectedRow();
if (selectedRow == 4)
{

LTELVGTableModel model = new LTELVGTableModel();
model.selectAll("emission");
}
}
};

emissionMoleculeTable.addMouseListener(mouseListener);



--->c quoi qui cloche? JE COMPREND PAS !!



lafolle
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
2 nov. 2006 à 17:29
Salut,

je sais pas comment vous faites pour poster les codes sur la meme ligne c'est illisible ...

MouseListener mouseListener = new MouseAdapter(){
    public void
mouseClicked( MouseEvent e){
        int selectedRow =
emissionMoleculeTable.getSelectedRow();
        if (selectedRow == 4) {

            LTELVGTableModel model = new LTELVGTableModel();
            model.selectAll("emission");
        }
     }
};

emissionMoleculeTable.addMouseListener(mouseListener); --->c quoi
qui cloche? JE COMPREND PAS !!

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 7
2 nov. 2006 à 17:39
dsl

tjs pas d'idée sur ce qui cloche?

bonne prog

lafolle
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
2 nov. 2006 à 17:41
Dalut,

tu peux faire un truc du gout:

public class MonModelQuiTue extends AbstractTableModel {

    MouseHandler mouseListener = new MouseHandler();

    public MonModelQuiTue() {
        this.mouseListener = new MouseHandler();
        this.tableModelListener = new TableModelHandler();
    }
    private class MouseHandler extends MouseAdapter {
        /**
         * Si l'utilisateur clic alors on fais un traitement
         */
        public void mouseClicked(MouseEvent e) {
            JTableHeader h = (JTableHeader) e.getSource();
            TableColumnModel columnModel = h.getColumnModel();
            int viewColumn = columnModel.getColumnIndexAtX(e.getX());
            int column = columnModel.getColumn(viewColumn).getModelIndex();
            if (column != -1) {
                //ton traitement
            }
        }
    }

/** tu redefini cette methode*/
public void setTableHeader(JTableHeader tableHeader) {
        if (this.tableHeader != null)
            this.tableHeader.removeMouseListener(mouseListener);
        this.tableHeader = tableHeader;
        if (this.tableHeader != null)
            this.tableHeader.addMouseListener(mouseListener);
    }
//........
}

......
MonModelQuiTue monModelQuiTue = new MonModelQuiTue();
JTable table = new JTable();
monModelQuiTue.setTableHeader(table.getTableHeader());
........

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 7
3 nov. 2006 à 08:53
je ne fonctionne pas avec des JTable mais avec des SSortTable est ce que çà change quelque chose?

merci encore


lafolle
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
3 nov. 2006 à 09:09
Salut,

ba je ne pense pas ....

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 7
3 nov. 2006 à 09:10
java.lang.StackOverflowError.....

voilà ce qu'il me dis quand je compile tout çà sans les points à la fin lol



lafolle
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
3 nov. 2006 à 09:14
lol, c'est balot quand meme :P et tu as fais quoi exactement?

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
3 nov. 2006 à 09:17
Sinon une option tu peux voir les sources complete ICI

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 7
3 nov. 2006 à 09:26
MouseListener mouseListener = new MouseAdapter(){
public void mouseClicked( MouseEvent e){
// si l'on a cliqué sur le header du tableau
if (e.getSource()==emissionMoleculeTable.getTableHeader()){
//if(emissionMoleculeTable.getTableHeader() == "Compute")
//{
LTELVGTableModel model = new LTELVGTableModel();
model.selectAll("emission");
//}



}
}
};



emissionMoleculeTable.getTableHeader().addMouseListener(mouseListener);


voilà la méthode que j'ai adoptée

merci de m'aider çà fait 3 js que je galère dessus



lafolle
0
lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 7
3 nov. 2006 à 09:33
dsl c pas très bien agencé


MouseListener mouseListener = new MouseAdapter(){
public void mouseClicked( MouseEvent e){

// si l'on a cliqué sur le header du tableau
if (e.getSource()==emissionMoleculeTable.getTableHeader()){
if(emissionMoleculeTable.getTableHeader() == "Compute")
{
LTELVGTableModel model = new LTELVGTableModel();
model.selectAll("emission");
}
}
}
};

emissionMoleculeTable.getTableHeader().addMouseListener(mouseListener);


voilà c mieux j'espère mais en fait je crois que mon pb viens de
model.selectAll("emission");
donc c autre chose de mon programme
en tout cas avec ce code je repère bien ma colonne voulue.

merci encore


lafolle
0
lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 7
3 nov. 2006 à 09:34
PP!!! ro j'ai fais des retours à la ligne et tout et çà me tasse le code ooo la la c illisible!!!!


lafolle
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
3 nov. 2006 à 09:40
Salut,

ragader a cette url qui correspond au sources de ton objet: http://www.koders.com/java/fid514C96FD1BF478FB39BE2DB193302DBC291E6362.aspx

ensuite regarde ce qui est fait et interresse toi à la classe inner HeaderListener

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 7
3 nov. 2006 à 10:15
pour obtenir le numéro de la colonne cliquée c bien : getColumnSelected() ?? parce que moi çà ne marche pas!!





lafolle
0
lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 7
3 nov. 2006 à 10:55
ok çà marche

merci beaucoup
mais pourquoi getColumnSelected ne fonctionne pas?

bonne prog à tous et merci encore



lafolle
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
3 nov. 2006 à 12:23
Salut,

simplement par ce que getColumnSelected ne s'applique pas dans un evenement de souris de plus getTableHeader est assez capricieux :P

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
Rejoignez-nous