Accueil > Forum > > > > Raffraichissment d'une jtable a partir d'une base oracle
Raffraichissment d'une jtable a partir d'une base oracle
jeudi 17 avril 2008 à 03:17:25 |
Raffraichissment d'une jtable a partir d'une base oracle

amin666
|
Salut a tous. voila que ca fait 2 jrs ke je galere avec ce prob.. je vous explique, je developpe une interface swing qui doit afficher des enregistrement d'une base oracle dans une jtable. L'affichage doit s'effectuer suite a un action performed d'un boutton (pour pouvoir recuperer les criteres de la recherche dans une requete sql) et le raffraichissment de la jtable doit etre automatique (si de nouveaux enregistrement sont effectué au niveau de la base ils doivent etre affichés). La methode ke g developpé fonctionne correctement: elle recherche les enregistrement et raffraichit la table, ceci est faisable si cette methode est appelé ds le void main, mais si j l'appelle dans l'evenement action performed du boutton(pour pouvoir specifier les criteres de recherche) l'execution se bloque et j n recois mem pa d'erreur. Merci
|
|
jeudi 17 avril 2008 à 09:40:19 |
Re : Raffraichissment d'une jtable a partir d'une base oracle

Ombitious_Developper
|
Salut:
Le sujet est un peu vague.
Est ce que tu as utilisé DefaultTableModel ou bien tu as étendu la classe AbstractTableModel?
|
|
jeudi 17 avril 2008 à 17:14:20 |
Re : Raffraichissment d'une jtable a partir d'une base oracle

amin666
|
Merci pr la reponse. En fait j'ai crée un modele qui etends AbstractTableModel.voici un exemple qui illustre le probleme.
import javax.swing.SwingUtilities; import java.awt.BorderLayout; import javax.swing.JPanel; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import java.awt.Rectangle; import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import javax.swing.JButton; import oracle.jdbc.pool.OracleDataSource; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
public class test extends JFrame {
private static final long serialVersionUID = 1L; private JPanel jContentPane = null; private JScrollPane jScrollPane = null; private static JTable jTable = null; private static JButton jButton = null; private static String req="select * from emp";
/** * This method initializes jScrollPane * * @return javax.swing.JScrollPane */ private JScrollPane getJScrollPane() { if (jScrollPane == null) { jScrollPane = new JScrollPane(); jScrollPane.setBounds(new Rectangle(0, 80, 637, 84)); jScrollPane.setViewportView(getJTable()); } return jScrollPane; }
/** * This method initializes jTable * * @return javax.swing.JTable */ private JTable getJTable() { if (jTable == null) { jTable = new JTable(); jTable.setSize(new Dimension(581, 260)); } return jTable; }
/** * This method initializes jButton * * @return javax.swing.JButton */ private JButton getJButton() { if (jButton == null) { jButton = new JButton(); jButton.setBounds(new Rectangle(99, 20, 91, 26)); jButton.setText("Rechercher"); } return jButton; }
//ici la methode qui effectue la recherche et le raffraichissement public static void rechercher(){ try{ Dbmanager d = new Dbmanager(); //Dbmanager est une classe qui contient les methode relatives a la base (connexion, execution des requete...) d.connect("database", "user", "password"); MonTableModel m =new MonTableModel(d.ColNames(d.getQuery(req)),d.donnee(d.getQuery(req)));//MonTableModel est la classe qui etends abstract table model jTable.setModel(m); while(true){ m.majDonnees(d.donnee(d.getQuery(req))); try { Thread.sleep(2000); }catch(InterruptedException ie){} } }catch(Exception et){et.printStackTrace();} }
public static void main(String[] args) { new test(); rechercher();// la methode placé ainsi ds la main fonctionnecorrectement mais elle fonctionne dés le demarrage de l'application et j n peu pa modifier les criteres de recherche }
/** * This is the default constructor */ public test() { super(); initialize(); }
private void initialize() { this.setSize(300, 200); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setContentPane(getJContentPane()); this.setTitle("JFrame"); this.setVisible(true); }
/** * This method initializes jContentPane * * @return javax.swing.JPanel */ private JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new JPanel(); jContentPane.setLayout(null); jContentPane.add(getJScrollPane(), null); jContentPane.add(getJButton(), null); } return jContentPane; } }
Maintenant si j'elimine l'appel de la methode rechercher du main (et je suupprime l'attribut statique) et que je l'appelle dans un action performed du boutton jButton, l'execution se bloque et je n recoi mem pa de message d'erreur Voici le code bloquant
.import javax.swing.SwingUtilities; import java.awt.BorderLayout; import javax.swing.JPanel; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import java.awt.Rectangle; import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import javax.swing.JButton; import oracle.jdbc.pool.OracleDataSource; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;
public class test extends JFrame {
private static final long serialVersionUID = 1L; private JPanel jContentPane = null; private JScrollPane jScrollPane = null; private static JTable jTable = null; // @jve:decl-index=0:visual-constraint="10,220" private static JButton jButton = null; private static String req="select * from emp"; // @jve:decl-index=0: //private static boolean rech=false; /** * This method initializes jScrollPane * * @return javax.swing.JScrollPane */ private JScrollPane getJScrollPane() { if (jScrollPane == null) { jScrollPane = new JScrollPane(); jScrollPane.setBounds(new Rectangle(0, 80, 637, 84)); jScrollPane.setViewportView(getJTable()); } return jScrollPane; }
/** * This method initializes jTable * * @return javax.swing.JTable */ private JTable getJTable() { if (jTable == null) { jTable = new JTable(); jTable.setSize(new Dimension(581, 260)); } return jTable; }
/** * This method initializes jButton * * @return javax.swing.JButton */ private JButton getJButton() { if (jButton == null) { jButton = new JButton(); jButton.setBounds(new Rectangle(99, 20, 91, 26)); jButton.setText("Rechercher"); jButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { req="select ename from emp" ; rechercher();} // ajout d'un action performed qui me permet d'afficher la jtable suivant un nouveau critere de recherche et empeche la recherche des le demarrage de l'application }); } return jButton; }
public void rechercher(){ try{ Dbmanager d = new Dbmanager(); d.connect("pfe", "sysman", "password"); MonTableModel m =new MonTableModel(d.ColNames(d.getQuery(req)),d.donnee(d.getQuery(req))); jTable.setModel(m); while(true){ m.majDonnees(d.donnee(d.getQuery(req))); try { Thread.sleep(2000); }catch(InterruptedException ie){} } }catch(Exception et){et.printStackTrace();} } public static void main(String[] args) { new test(); }
/** * This is the default constructor */ public test() { super(); initialize(); }
private void initialize() { this.setSize(300, 200); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setContentPane(getJContentPane()); this.setTitle("JFrame"); this.setVisible(true); }
/** * This method initializes jContentPane * * @return javax.swing.JPanel */ private JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new JPanel(); jContentPane.setLayout(null); jContentPane.add(getJScrollPane(), null); jContentPane.add(getJButton(), null); } return jContentPane; }
}
J'espere que j vous ai eclairci le prob, merci encore Crdlt
|
|
vendredi 18 avril 2008 à 06:14:06 |
Re : Raffraichissment d'une jtable a partir d'une base oracle

amin666
|
Réponse acceptée !
Le probleme est résolu.C'eait une betise dans le threading. Le conflit residait dans le thread du main qui ne gerait pa le raffraichissement. La solution est de creer une classe qui etend Thread et d'implementer le raffraichissement ds la fonction run(); et puis faire appel a ce thread ds le ActionPerformed du boutton.
|
|
samedi 6 novembre 2010 à 01:17:17 |
Re : Raffraichissment d'une jtable a partir d'une base oracle

sancha2010
|
j'ai besoin du correction de votre code ...si vous pouvez l'envoyer je vais être herseuse 
|
|
Cette discussion est classée dans : base, enregistrement, jtable, oracle, raffraichissment
Répondre à ce message
Sujets en rapport avec ce message
Oracle et JDBC, Enregistrement [ par perrotju ]
Voila mon problème : dans ma base de données Oracle, j'ai créé une table dans laquelle j'ai inséré une séquence, séquence rattachée à un champ (identi
Pb affichage d'une ligne dans une JTable [ par Onclickert ]
Salut à tous,Dans mon panel, j'ai une JTable avec une Scroll barre. On ne peut voir que 4 enregistrements de ma JTable. Or ma JTable contient 10 enreg
JTable liée à une table de ma base [ par nouroudiop ]
Salut les gars,j'aimerais savoir comment on arrive à lier une JTable directement à une table de ma base pour pouvoir effectuer directement une mise à
BASE LOCALE.... JDBC Comment faire? [ par darktonight ]
Voilà j'ai suivi comme beaucoup d'exemple le montre un test de connection, mon fichier data.properties est de la forme :jdbc.drivers=oracle.jdbc.drive
Base de données : enregistrement en masse [ par fabrice_pi ]
Bonjour,J'aimerais réduire le temps de stockage d'informations dans une base de données. Je veux toujours stocker le même format d'information : j'uti
Pilote JDBC [ par chichoux ]
Voila, je me suis mis au JDBC puisque je souhaiterais lier le JAVA et ma base de données ORACLE. Pour cela , il me faut utiliser JDBC; or dès le débu
chargement du driver [ par progrima ]
Slt je developpe une applicaion sous javaBeans 4.0, j'essaye de me connecter à une base de donnée oracle et je n'arrive pas à le faire!!!j'ai un prob
connexion jsp et oracle [ par aminix9 ]
salu tt lmonde ,est c ke vous pouvez me donner ou bien m indiquer le code d une page JSP qui se connecte à une base de donnees oracle et affiche les i
inserer et retirer des image d'une base oracle [ par stefane ]
Bonsoir a tousje suis debutant en ajava et j'aimerai savoir comment inserer une image dans une base oracle en utilisant le type BLOB pour stocker l'i
Livres en rapport
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Forum
RE : URL ET JAVARE : URL ET JAVA par Pylouq
Cliquez pour lire la suite par Pylouq
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|