Comment parfaire mon application?

Fermé
shannon1083 Messages postés 3 Date d'inscription jeudi 28 octobre 2010 Statut Membre Dernière intervention 28 octobre 2010 - 28 oct. 2010 à 16:24
lucieb31 Messages postés 345 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 28 juillet 2012 - 29 oct. 2010 à 14:29
Bonjour,





commentaire: je suis un amateur en java,étant élève ingénieur en Réseaux,système et télécoms,j'aimerais apprendre la programmation,au stade où j'en suis,les choses commencent à devenir un peu complexe
et je viens à travers ce site pour avoir de l'aide,merci pour votre attention et soyez indulgent!

veillez m'aider à parfaire mon application

d'abors au niveau de la recherche, j'aimerais faire cette recherche avec deux attributs:matricule(mat) et le poste occupé(post)
c'est à dire quant je clic sur rechercher, qu'une boîte de dialogue me demande de saisir le poste occupé,de même pour le bouton supprimer
J'aimerais aussi que lorsque je clic sur éditer et que les resultats s'affiche dans mon jtable,et que je fais supprimer que la donnée supprimée disparaisse au niveau du jtable
Pour l'instant,quand j'édite,tous les rédultats s'affichent dans mon jtable,mais quand je supprime,je dois quitter avant de revenir pour ne plus voir la donnée dans mon jtable
Je veux aussi que je puisse apporter des modifications à partir de l'affichage dans le jtable, c'est à dire,que je puisse cocher la ligne à modifier dans le jtable afin d'apporter la modification
au niveau du bouton supprimer,quand je fais entrer un faux matriculer,au lieu de m'envoyer d'erreur,il m'envoie plutôt un message du genre"élément supprimé"
quant à "éditer" j'aimerais le faire avec 2 attributs comme suit:select * from Nomtable order by 1er attribut,2è attribut;dans mon cas,je ne peux le faire avec un seul attribut pour l'ordre
Merci,je pense pouvoir m'arrêter là! Et je pense que de bonnes volontés m'aideront à trouver la solution à mon problême:

Shannon
ligue225@gmail.com /ligue225@yahool.fr
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
voici ma base de données


-creation de profil

create profile aeedez limit
sessions_per_user 3
failed_login_attempts 3;
alter system set resource_limit=true;


--creation du tablespace

create tablespace AEEDEZ_DB
DATAFILE 'C:\oraclexe\oradata\XE\AEEDEZ_DB.dbf' size 100M;


--creation de user

create user aeedez identified by membre
default tablespace AEEDEZ_DB
profile gestweb;


grant all privileges to aeedez;
connect aeedez/membre
commit;

--Suppression des tables

drop table Authentification;
drop table Cotisation;
drop table Periode
drop table Membre;

--creation des tables

create table Authentification
(login varchar2(10) not null,
password varchar2(10) not null,
CONSTRAINT pk_auth primary key(login,password));


create table Membre
(mat varchar2(15) not null,
nom varchar2(20) not null,
prenoms varchar2(40) not null,
typ_membre varchar2(30),
datnais date,
sexe varchar2(10),
cellulaire varchar2(10),
adresse varchar2(30),
email varchar2(30),
datinscr Date ,
lieu_nais varchar2(50),
diplome varchar2(40),
lieu_habit varchar2(40),
poste varchar2(50),
CONSTRAINT pk_mat primary key(mat));


create table Cotisation
(mat varchar2(15) not null,
typ_cotisation varchar2(40),--cotisation mensuelle,aide,manifestation
versmen number(6,2),--un combo ki contiendra les #tes sommes
jour varchar2(2),--jour de la cotisation
mois varchar2(15),--mois de la cotisation
annee varchar2(4),--année de la cotisation
CONSTRAINT fk_ma foreign key(mat) references Membre(mat));

create table Periode
(
mat varchar2(15) not null,
janvier varchar2(15),
fevrier varchar2(15),
mars varchar2(15),
avril varchar2(15),
mai varchar2(15),
juin varchar2(15),
juillet varchar2(15),
aout varchar2(15),
septembre varchar2(15),
octobre varchar2(15),
novembre varchar2(15),
decembre varchar2(15),
CONSTRAINT fk_map foreign key(mat) references Membre(mat));

commit;


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
voici mon application
l'application marche,mais comme citer ci-dessus je veux parfaire l'application en apportant les éléments précités



package projet_aeedez;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import oracle.jdbc.OracleConnection;
import oracle.jdbc.OraclePreparedStatement;
import oracle.jdbc.OracleResultSet;
import oracle.jdbc.OracleStatement;

public class Frm_Gestion extends javax.swing.JFrame {
private OracleConnection con;
private OracleStatement ost;
private OracleResultSet res;
private OraclePreparedStatement ps;
private String re;
public Frm_Gestion() {
initComponents();
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=(OracleConnection) DriverManager.getConnection("jdbc:oracle:thin:@localhost:1522:XE","aeedez","membre");
}catch(Exception ex){}
}
private void bouton_enregistrerActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.valide();
int i=0;
String sqla="select * from Membre order by mat";
try{
ost = (OracleStatement) con.createStatement();
res = (OracleResultSet) ost.executeQuery(sqla);
while(res.next())
{
table.setValueAt(res.getObject(1), i, 0);
table.setValueAt(res.getObject(2), i, 1);
table.setValueAt(res.getObject(3), i, 2);
table.setValueAt(res.getObject(4), i, 3);
table.setValueAt(res.getObject(5), i, 4);
table.setValueAt(res.getObject(6), i, 5);
table.setValueAt(res.getObject(7), i, 6);
table.setValueAt(res.getObject(8), i, 7);
table.setValueAt(res.getObject(9), i, 8);
table.setValueAt(res.getObject(10), i, 9);
table.setValueAt(res.getObject(11), i, 10);
table.setValueAt(res.getObject(12), i, 11);
table.setValueAt(res.getObject(13), i, 12);
table.setValueAt(res.getObject(14), i, 13);
i++;
}
}
catch(Exception rf){JOptionPane.showMessageDialog(null, rf.getMessage());}
}
private void bouton_annulerActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.vide();
}
private void bouton_rechercherActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
String sql = "select * from Membre where mat='"+ txtmat.getText()+"'";
if(txtmat.getText().equals(""))
JOptionPane.showMessageDialog(this, "Entrer le matricule");
else
ost = (OracleStatement) con.createStatement();
res = (OracleResultSet) ost.executeQuery(sql);
res.next();
txtmat.setText(res.getString("mat"));
txtnom.setText(res.getString("nom"));
txtpren.setText(res.getString("prenoms"));
txttyp.setText(res.getString("typ_membre"));
txtdat.setText(res.getString("datnais"));
cb.setSelectedItem(res.getString("sexe"));
txtcont.setText(res.getString("cellulaire"));
txtadr.setText(res.getString("adresse"));
txtem.setText(res.getString("email"));
txtins.setText(res.getString("datinscr"));
txtlieu.setText(res.getString("lieu_nais"));
txtdip.setText(res.getString("diplome"));
txthab.setText(res.getString("lieu_habit"));
txtpost.setText(res.getString("poste"));

}catch (SQLException ex) {
JOptionPane.showMessageDialog(this,"IDENTIFIANT INTROUVABLE!","RECHERCHE",JOptionPane.ERROR_MESSAGE);

}
}

private void bouton_supprimerActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
String sql2 = "delete Membre where mat='" + txtmat.getText() + "'";
ps = (OraclePreparedStatement) con.prepareStatement(sql2);
ps.executeUpdate(sql2);
con.commit();
JOptionPane.showMessageDialog(null," LIGNE COTISATION SUPPRIMEE!");
} catch (SQLException ex)
{
txtmat.setText("");
txtnom.setText("");
txtpren.setText("");
txttyp.setText("");
txtdat.setText("");
txtcont.setText("");
txtadr.setText("");
txtem.setText("");
txtins.setText("");
txtlieu.setText("");
txtdip.setText("");
txthab.setText("");
txtpost.setText("");
} }
private void bouton_editerActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int i=0;
String sqla="select * from Membre order by mat asc";
try{
ost = (OracleStatement) con.createStatement();
res = (OracleResultSet) ost.executeQuery(sqla);

while(res.next())
{
table.setValueAt(res.getObject(1), i, 0);
table.setValueAt(res.getObject(2), i, 1);
table.setValueAt(res.getObject(3), i, 2);
table.setValueAt(res.getObject(4), i, 3);
table.setValueAt(res.getObject(5), i, 4);
table.setValueAt(res.getObject(6), i, 5);
table.setValueAt(res.getObject(7), i, 6);
table.setValueAt(res.getObject(8), i, 7);
table.setValueAt(res.getObject(9), i, 8);
table.setValueAt(res.getObject(10), i, 9);
table.setValueAt(res.getObject(11), i, 10);
table.setValueAt(res.getObject(12), i, 11);
table.setValueAt(res.getObject(13), i, 12);
table.setValueAt(res.getObject(14), i, 13);
i++;
}}
catch(Exception rf){JOptionPane.showMessageDialog(null, rf.getMessage());}}
private void bouton_charger_listeActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.dispose();
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Frm_Paie().setVisible(true);
}
});
}

public void valide()
{
try{
String sql="insert into Membre (mat,nom,prenoms,typ_membre,datnais,sexe,cellulaire,adresse,email,datinscr,lieu_nais,diplome,lieu_habit,poste) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?) ";
ps= (OraclePreparedStatement) con.prepareStatement(sql);
ps.setString(1,txtmat.getText());
ps.setString(2,txtnom.getText());
ps.setString(3,txtpren.getText());
ps.setString(4,txttyp.getText());
ps.setString(5,txtdat.getText());
ps.setString(6,(String) cb.getSelectedItem());
ps.setString(7,txtcont.getText());
ps.setString(8,txtadr.getText());
ps.setString(9,txtem.getText());
ps.setString(10,txtins.getText());
ps.setString(11,txtlieu.getText());
ps.setString(12,txtdip.getText());
ps.setString(13,txthab.getText());
ps.setString(14,txtpost.getText());
ps.executeUpdate();
JOptionPane.showMessageDialog(null,"Membre enregistré!");
} catch (SQLException ex) {
{JOptionPane.showMessageDialog(null,ex.getMessage());}

}
txtmat.setText("");
txtnom.setText("");
txtpren.setText("");
txttyp.setText("");
txtdat.setText("");
txtcont.setText("");
txtadr.setText("");
txtem.setText("");
txtins.setText("");
txtlieu.setText("");
txtdip.setText("");
txthab.setText("");
txtpost.setText("");
}

public void vide()
{
txtmat.setText("");
txtnom.setText("");
txtpren.setText("");
txttyp.setText("");
txtdat.setText("");
txtcont.setText("");
txtadr.setText("");
txtem.setText("");
txtins.setText("");
txtlieu.setText("");
txtdip.setText("");
txthab.setText("");
txtpost.setText("");
}
A voir également:

1 réponse

lucieb31 Messages postés 345 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 28 juillet 2012 62
29 oct. 2010 à 14:29
Bonjour,

Pour qu'une boite de dialogue s'affiche quand tu clic sur le bouton "rechercher", il faut que tu créé une nouvelle classe qui sera ta boite de dialog. Tu fais ta boite de dialogue comme tu le souhaite, et dans l'action de bouton "rechercher", tu instancie cette boite de dialogue. De meme pour le bouton supprimer. Sachant que si l'information a récuperer est la meme pour les deux, tu n'a pas besoin de faire 2 classes.
Pour que tu n'ai pas besoin de quitter pour que ta jtable s'affiche avec le moniteur supprimé en moins, tu recharge completement ta table.


Par contre, tu peux optimiser ton code, par exemple pour :
while(res.next())
{
table.setValueAt(res.getObject(1), i, 0);
table.setValueAt(res.getObject(2), i, 1);
table.setValueAt(res.getObject(3), i, 2);
table.setValueAt(res.getObject(4), i, 3);
table.setValueAt(res.getObject(5), i, 4);
table.setValueAt(res.getObject(6), i, 5);
table.setValueAt(res.getObject(7), i, 6);
table.setValueAt(res.getObject(8), i, 7);
table.setValueAt(res.getObject(9), i, 8);
table.setValueAt(res.getObject(10), i, 9);
table.setValueAt(res.getObject(11), i, 10);
table.setValueAt(res.getObject(12), i, 11);
table.setValueAt(res.getObject(13), i, 12);
table.setValueAt(res.getObject(14), i, 13);
i++;
}

il te suffit de faire :
for(int i = 0; i < 14; i++){
table.setValueAt(res.getObject(i+1),i,i);
}

ça t'evite d'avoir plein de ligne de code qui ne sert a rien.
0