Cmt glisser et utiliser un jTable en eclipse

stifane20 Messages postés 3 Date d'inscription samedi 20 juin 2009 Statut Membre Dernière intervention 13 janvier 2010 - 13 janv. 2010 à 13:41
stifane20 Messages postés 3 Date d'inscription samedi 20 juin 2009 Statut Membre Dernière intervention 13 janvier 2010 - 13 janv. 2010 à 18:04
Bonjour tout le Monde
j'ai un problem avec jTable :
mon problem est que je veu remplir la jTable avec une requet Oracle mais le problem c'est au niveau de While{}
je connais pas le nom de jTable parcque j'ai glisser jTable de la boat d'outil d'eclipse donc j'ai pas compris comment modifier le nom de jTable pour remplir les lignes
j'ai travallier avec CachedRowSet
donc l'erreur au niveau de nom de jTable
il me donne jTable0 par default donc j'ai pas le droit de remplir le jTable sans le nom
jTable0[i][0]=rs.getString(0);//il me donne une erreur
S'il vous plaît aidez-moi
Merci d'avance

4 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
13 janv. 2010 à 13:59
Salut,

Un bon conseil : fais tes interfaces graphiques à la main !!! Ca t'évitera d'utiliser du code produit par un outil qui est totalement illisible et immaintenable... Et en plus de cà tu pourras lui donner le nom que tu veux !

Et sinon, je pense qu'une lecture de la javadoc s'impose voir même un tutoriel qui tapprendrais le langage java... car tu devrais même pas avoir l'idée de faire jTable0[i][0]=rs.getString(0); avec n'importe quel composant SWING, ni même n'importe quelle classe java !
______________________________________
DarK Sidious
0
stifane20 Messages postés 3 Date d'inscription samedi 20 juin 2009 Statut Membre Dernière intervention 13 janvier 2010
13 janv. 2010 à 17:43
salut
merci Dark sidious ;
mais j'ai pas bien compris ;
donc voici mon code :
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.sql.rowset.CachedRowSet;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableModel;

import org.dyno.visual.swing.layouts.Bilateral;
import org.dyno.visual.swing.layouts.Constraints;
import org.dyno.visual.swing.layouts.GroupLayout;
import org.dyno.visual.swing.layouts.Leading;


//VS4E -- DO NOT REMOVE THIS LINE!
public class info_compte extends JFrame {

private static final long serialVersionUID = 1L;
private JTable jTable0;
private JScrollPane jScrollPane0;
private static final String PREFERRED_LOOK_AND_FEEL = "javax.swing.plaf.metal.MetalLookAndFeel";
public info_compte() {
initComponents();
}

private void initComponents() {
setLayout(new GroupLayout());
add(getJScrollPane0(), new Constraints(new Bilateral(3, 0, 22), new Leading(2, 150, 10, 10)));
setSize(540, 240);
}

private JScrollPane getJScrollPane0() {
if (jScrollPane0 == null) {
jScrollPane0 = new JScrollPane();
jScrollPane0.setViewportView(getJTable0());
}
return jScrollPane0;
}

private JTable getJTable0() {
if (jTable0 == null) {
jTable0 = new JTable();
jTable0.setModel(new DefaultTableModel(new Object[1][6] , new String[] { "Nom", "Prenom","Serial carte","Date Dernier retrait","Retrait","Solde" }) {
private static final long serialVersionUID = 1L;
Class<?>[] types = new Class<?>[] { Object.class, Object.class, };

public Class<?> getColumnClass(int columnIndex) {
return types[columnIndex];
}
});
}
return jTable0;
}

private static void installLnF() {
try {
String lnfClassname = PREFERRED_LOOK_AND_FEEL;
if (lnfClassname == null)
lnfClassname = UIManager.getCrossPlatformLookAndFeelClassName();
UIManager.setLookAndFeel(lnfClassname);
} catch (Exception e) {
System.err.println("Cannot install " + PREFERRED_LOOK_AND_FEEL
+ " on this platform:" + e.getMessage());
}
}

/**
* Main entry of the class.
* Note: This class is only created so that you can easily preview the result at runtime.
* It is not expected to be managed by the designer.
* You can modify it as you like.
* @throws ClassNotFoundException
* @throws SQLException
* @throws IllegalAccessException
* @throws InstantiationException
*/
public static void main(String[] args) throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException {
Class cl=Class.forName("oracle.jdbc.driver.OracleDriver");
String c="jdbc:oracle:thin:@localhost:1521:orcl";
Connection con =DriverManager.getConnection(c,"SYSTEM","s123");
int i=0;
CachedRowSet rowset;
rowset=(CachedRowSet) cl.newInstance();
try{
rowset.setType(ResultSet.TYPE_SCROLL_INSENSITIVE);
rowset.setConcurrency(ResultSet.CONCUR_UPDATABLE);
rowset.setUrl("jdbc:oracle:thin:@localhost:1521:orcl");
rowset.setUsername("SYSTEM");
rowset.setPassword("s123");
rowset.setCommand("select clients.nom,clietns.prenom,carte.serial_carte,carte.date_dernier_retrait,carte.retrai,compte.solde from clients,carte,compte where clients.id_client=comte.id_client and compte.serial_carte=carte.serial_carte and carte.serial_carte='vf14552' ");
rowset.execute();
while (rowset.next()){
//jTable0[i][0]=rowset.getString(1);//le preblem au niveau de nom du jTable
// jTable0[i][1]=rowset.getString(2);//il me donne une errur du nom
// jTable0[i][2]=rowset.getInt(3);
// jTable0[i][3]=rowset.getString(4);
// jTable0[i][4]=rowset.getInt(5);
// jTable0[i][5]=rowset.getInt(6);
i++;
}
}catch(SQLException e){
e.printStackTrace();
}
installLnF();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
info_compte frame = new info_compte();
frame.setDefaultCloseOperation(info_compte.EXIT_ON_CLOSE);
frame.setTitle("info_compte");
frame.getContentPane().setPreferredSize(frame.getSize());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}

}
maintenant tu peu me compris
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
13 janv. 2010 à 17:51
Salut,

En java, tu n'as pas d'opérateur, comme en C++, donc jTable0[i][1] ne veut absolument rien dire ! Donc forcément, le compilateur n'est pas content. jTable0, c'est une instance de JTable, pas un tableau !

Il faut que tu intégre les valeurs dans le TableModel de ton JTable qui est le model du composant JTable (un JTable est un composant MVC).

C'est pour cà que je te conseille vivement de lire soit la javadoc, soit un tutorial sur java avant de te lancer dans un projet, car tu va droit dans le mur sinon...
______________________________________
DarK Sidious
0
stifane20 Messages postés 3 Date d'inscription samedi 20 juin 2009 Statut Membre Dernière intervention 13 janvier 2010
13 janv. 2010 à 18:04
Merci Dark Sidious c tres gentille de ta part
0
Rejoignez-nous