Problème avec le tri par insertion pour un tableau

tigroudu13 Messages postés 8 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 5 juin 2011 - 31 oct. 2009 à 10:44
solo9saad Messages postés 9 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 6 décembre 2009 - 9 nov. 2009 à 13:05
Bonjour,

J'ai un petit problème pour créer et faire marcher mon programme JAVA pour un triage par insertion. Je dois le faire avec une interface graphique d'où mon problème car j'arrive à lui faire récupérer les chiffres mais pas à les renvoyer après le tri.

Mon code est le suivant:

public class Tableau extends javax.swing.JFrame {

/** Creates new form Tableau */
public Tableau() {
initComponents();
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jTextField3 = new javax.swing.JTextField();
jTextField4 = new javax.swing.JTextField();
jTextField5 = new javax.swing.JTextField();
jTextField6 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jTextField7 = new javax.swing.JTextField();
jTextField8 = new javax.swing.JTextField();
jTextField9 = new javax.swing.JTextField();
jTextField10 = new javax.swing.JTextField();
jTextField11 = new javax.swing.JTextField();
jTextField12 = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setBackground(new java.awt.Color(204, 255, 204));

jButton1.setText("Trier les nombres");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jLabel1.setText("Entrer des nombres puis cliquer sur le bouton pour les triers");

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(jTextField3, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextField2, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextField1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 59, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addComponent(jTextField4, javax.swing.GroupLayout.DEFAULT_SIZE, 59, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jTextField6, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 59, Short.MAX_VALUE)
.addComponent(jTextField5, javax.swing.GroupLayout.DEFAULT_SIZE, 59, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addGap(64, 64, 64)
.addComponent(jLabel1)
.addGap(74, 74, 74))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 209, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(105, 105, 105)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(jTextField12)
.addComponent(jTextField11, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextField10, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextField9, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextField8, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTextField7, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 64, Short.MAX_VALUE))
.addGap(20, 20, 20))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextField7, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextField8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jTextField5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jTextField6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addComponent(jTextField9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jTextField10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jTextField11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jTextField12, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);

pack();
}// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

//Création des variables
int []Table=new int[6];
int compteur=0;

//Récupération des données
Table[0]=Integer.parseInt(jTextField1.getText());
Table[1]=Integer.parseInt(jTextField2.getText());
Table[2]=Integer.parseInt(jTextField3.getText());
Table[3]=Integer.parseInt(jTextField4.getText());
Table[4]=Integer.parseInt(jTextField5.getText());
Table[5]=Integer.parseInt(jTextField6.getText());

//Triage du tableau
do{
compteur=0;

for(int i=1;i<=Table.length;i++)
do {
if(Table[i]<Table[i-1]){
int aux = Table[1];
Table[i]=Table[i-1];
Table[i-1]=aux;
compteur=compteur+1;
}
} while (Table[i]<Table[i-1]);
}while (compteur!=0);

//Renvoie des données
jTextField7.setText(Integer.toHexString(Table[0]));
jTextField8.setText(Integer.toHexString(Table[1]));
jTextField9.setText(Integer.toHexString(Table[2]));
jTextField10.setText(Integer.toHexString(Table[3]));
jTextField11.setText(Integer.toHexString(Table[4]));
jTextField12.setText(Integer.toHexString(Table[5]));

}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Tableau().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField10;
private javax.swing.JTextField jTextField11;
private javax.swing.JTextField jTextField12;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextField jTextField5;
private javax.swing.JTextField jTextField6;
private javax.swing.JTextField jTextField7;
private javax.swing.JTextField jTextField8;
private javax.swing.JTextField jTextField9;
// End of variables declaration

}


Je suis sur le logiciel NetBeans 6.7

3 réponses

Utilisateur anonyme
31 oct. 2009 à 18:34
Salut,

Revoir le tri de ton tableau:

En particulier en remplaçant
for(int i=1;i<=Table.length;i++)

qui provoque la levée de l'exception,
par
for(int i=1;i<Table.length;i++)


ou bien en utilisant la calsse Arrays >> import java.util.Arrays;
et en remplaçant ton module de tri par:
Arrays.sort(Table);


D'autre part corriger la recup. après tri:

//Renvoie des données
en remplaçant
/*jTextField7.setText(Integer.toHexString(Table[0])); 
         jTextField8.setText(Integer.toHexString(Table[1])); 
         jTextField9.setText(Integer.toHexString(Table[2])); 
         jTextField10.setText(Integer.toHexString(Table[3])); 
         jTextField11.setText(Integer.toHexString(Table[4])); 
         jTextField12.setText(Integer.toHexString(Table[5])); */



par
        jTextField7.setText(Integer.toString(Table[0])); 
        jTextField8.setText(Integer.toString(Table[1])); 
        jTextField9.setText(Integer.toString(Table[2])); 
        jTextField10.setText(Integer.toString(Table[3])); 
        jTextField11.setText(Integer.toHexString(Table[4])); 
        JTextField12.setText(Integer.toHexString(Table[5]));


Cordialement,


...\ Dan /...
0
Utilisateur anonyme
31 oct. 2009 à 20:16
Ps,

Penser à gerer les exceptions possibles car si l'utilisateur entre une valeur non numérique ou trop longue pour un int >>>> NumberFormatException

...\ Dan /...
0
solo9saad Messages postés 9 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 6 décembre 2009
9 nov. 2009 à 13:05
salut tous le monde
vous avez une faute dans : la partie de triage du tableau :
for(int i=1;i<=Table.length;i++){

do {
if(Table[i]<Table[i-1]){
int aux = Table[1];
int aux=Table[i];
//fait l'execution .
Table[i]=Table[i-1];
Table[i-1]=aux;
compteur=compteur+1;
}
} while (Table[i]<Table[i-1]);
}while (compteur!=0);
}
0
Rejoignez-nous