begin process at 2012 02 14 12:24:19
  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 Graphe qui se redessine [ par Mizgierwe ] Bonjour, j'ai fait un graphe qui prend des valeurs d'un tableau aléatoire, et je veux que dans l'applet il y ait un bouton Go qui me permette de redes modification d'une insertion(ajout ) [ par etudiantinformatique ] bonjour à tous le monde et merci de vous interactions et vos aides j'arrive à ajouter avec ce code ci-après, maintenant je voudrais modifier et/ou sup récupérer des données à partir d'une base de données oracle en utilisant jsf [ par enmaai ] Salut Mon programme consiste à récupérer des données à partir d'une base de données oracle en utilisant jsf c'est à dire quand j'introduis le critèr Imorter une image et l'afficher a partir d'un interface graphique java [ par ghaouar ] Bonjour, j'ai créer ce code mais lorsque je choisir une image et cliquer sur ouvrir, elle ne s'affiche pas . voila le code et merci de m'aider, c trè Comment faire.... [ par mau007 ] Bonjour à tous, j'ai besoin d'avoir de l'aide sur le point suivant: j'ai trois classes: [b][u]ClasseUne[/u][/b] [code=java] public abstract class C Problème fondamental [ par Pasokoniidesuka ] Bonjour, je viens demander vos lumières parce que je me mélange un peu les pinceaux. C'est peut-être un topic pour les courageux parce que ça risque d


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 3,089 sec (3)

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