begin process at 2010 02 10 01:47:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Java2D et java3D

 > 

Problème de référence de classe JTable


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème de référence de classe JTable

dimanche 28 décembre 2003 à 06:42:51 | Problème de référence de classe JTable

tihon

En fait, mon but est d'afficher le résultat d'une requête dans un JTable et ensuite, en appuyant sur un bouton de récupérer, dans un premier temps, la valeur d'une colonne de la ligne sélectionnée. Le problème, qui m'a pris toute la nuit, est que quand je teste la référence de ma JTable, et de ma listSelectioModel dans l'ActionListener, elle est nulle, et donc le pgm plante.
J'ai mis en rouge les endroit ou il me rends une valeur nulle...
Merci de votre aide!


Voilà mon code :


package projetjava;
import javax.swing.*;
import javax.swing.table.TableColumn.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.sql.*;

public class VoirClient extends JFrame {

private ConsulterClient parent;
private Accueil parentaccueil;
private Container cont;
private Vector nomcol=new Vector(),lignes=new Vector();
private String requete;
private JPanel pan1;
private MyTableModel model;
private JTable tablecli,tablebis;
private JScrollPane defilant;
private boolean vis = true;
private JButton suppr;
private JButton modifier;
private JButton retour;
private JLabel lab;
private int ind,numcli;
private ListSelectionModel listSelect;

/** Creates a new instance of VoirClient */
public VoirClient(ConsulterClient p, Accueil a) {
super("Client");
parent=p;
parentaccueil=a;
setBounds(100,100,900,500);
cont=getContentPane();
pan1 = new JPanel();

cont.setLayout(new BorderLayout());
try
{
requete="select * from Client;";
nomcol=Generique.getColumns(parentaccueil.getconnexion(),requete);
lignes=Generique.RequeteSQL(parentaccueil.getconnexion(),requete);
}
catch (SQLException re){JOptionPane.showMessageDialog(null,re.getMessage(),"pas d'acces bd",JOptionPane.ERROR_MESSAGE);};


MyTableModel model= new MyTableModel(nomcol,lignes);
JTable tablecli = new JTable(model);

tablecli.getTableHeader().setVisible(vis);
tablecli.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
ListSelectionModel listSelect = tablecli.getSelectionModel();

if (VoirClient.this.tablecli==null) System.out.println("pobien1");

if (VoirClient.this.tablebis==null) System.out.println("pobien");


TableColumnModel columnModel = tablecli.getColumnModel();
TableColumn column = columnModel.getColumn(2);
column.setPreferredWidth( 300 );
TableColumn column1 = columnModel.getColumn(6);
column1.setPreferredWidth( 200 );

defilant = new JScrollPane(tablecli);
cont.add(defilant,BorderLayout.CENTER);

lab=new JLabel(" Informations relatives aux clients. Veuillez sélectionner le client sur lequel vous souhaitez faire des modifications.");
cont.add(lab,BorderLayout.NORTH);

suppr = new JButton ("Supprimer le client");
Mongestionnaire sup = new Mongestionnaire();
suppr.addActionListener(sup);

modifier = new JButton ("Modifier les données du client");
Mongestionnaire mod = new Mongestionnaire();
modifier.addActionListener(mod);
retour = new JButton ("<<< Retour");
Mongestionnaire ret = new Mongestionnaire();

retour.addActionListener(ret);
pan1.setLayout(new GridLayout(1,3));
pan1.add(suppr);
pan1.add(modifier);
pan1.add(retour);

cont.add(pan1,BorderLayout.SOUTH);

show();
}
private class Mongestionnaire implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
if (e.getSource()==retour)
{
VoirClient.this.dispose();
}
if (e.getSource()==modifier)
{

}
if (e.getSource()==suppr)
{
if (listSelect == null)
System.out.println("merde");
else{
int row = listSelect.getMinSelectionIndex();
System.out.println(model.getValueAt(row,0));


}

}
}
}
}


package projetjava;

import javax.swing.table.*;
import java.util.*;
/**
*
* @author Maxime
*/
public class MyTableModel extends AbstractTableModel {
Vector nomcol=new Vector();
Vector contenu=new Vector();
/** Creates a new instance of MyTableModel */
public MyTableModel(Vector col,Vector lig) {
contenu=lig;
nomcol=col;
}
public int getColumnCount(){return nomcol.size();}
public int getRowCount() {return contenu.size();}
public String getColumnName (int col) {return (String)nomcol.elementAt(col);}
public Object getValueAt(int row,int col){
Vector vect = (Vector)(contenu.elementAt(row));
return vect.elementAt(col);}


public Class getColumnClass(int c) {
return getValueAt(0,c).getClass();

}

}
lundi 29 décembre 2003 à 00:57:39 | Re : Problème de référence de classe JTable

tihon

J'ai trouvé! Merci à ceux qui ont essayé!

En fait il fallait simplement que je crée ma JTable dans les variables d'instance afin qu'elle soit accessible dans la classe interne.
Là, en créant une JTable dans le constructeur, je lui attribait une nouvelle référence non accessible à la classe interne mais seulement au constructeur.:):):)


Cette discussion est classée dans : public, private, import, vector, tablecli


Répondre à ce message

Sujets en rapport avec ce message

Erreur d'execution: java.lang.NullPointerException [ par amjad ] A la compilation d'un projet java3D j'obtient le message d'erreur suivant :Exception in thread "main" java.lang.NullPointerException at javax.vecmath Validation d'une formulaire [ par dalidali86 ] Bonjour , j'ai besoin dans mon traivail d'un formulaire à remplir par les clients par internet . Normalement , on doit vérifier l'existence ou non du jmf [ par Spunk62 ] Bonjour, j'ai récupéré un lecteur audio (utilisant la librairie jmf), je voudrais l'afficher dans un jPanel avec un split pane, le lecteur lit bien le java [ par hanano02 ] merci d'avance. je vous souhaite de vous m'aider pour corrige ce probleme c'est de faire associer les evenements aux bouton lancer et arrter un Thread Problème Compilation java [ par auriks ] Bonjour, je travail sur un projet sous eclipse actuellement, Lorsque j'exécute le projet et que j'appel ma Vue sous eclipse il n'y as aucun problème, JDBC/prostgreSQL [ par taktouk541 ] Bonjour,j'arrive pas a cree une connection entre JDBC et postgreSQL, j'ai cree corectement ma base,les table aussi j'ai ajouter le driver au CLASSPATH Valeurs Hexadecimals d'un fichier [ par liipod ] Bonjour, je voudrais afficher les valeurs en hexadécimal d'un fichier, comme quand il est ouvert avec un "éditeur hexadécimal". voila mon code sourc Problème de MVC [ par shark59112 ] Bonjour, Voici mon soucis, j'ai essayé de créer un petit compteur avec le modèle MVC mais j'ai l'impression que quand je clique sur mon bouton, mon c Méthodes et classes imbriquées [ par ultra_3m ] Alors salut, j'ai une classe Client qui contient 6 méthodes Get pour les 6 attributs public class Client { private String Nom; private String Desc; Ecrire dans un dans fichier word/excel [ par Oneagaindoguys ] Bonjour, après de nombreuses recherche sur le net, j'ai réussi à créer et enregistrer un fichier word et un fichier excel. C'est bien joli, mais j'ai


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales