Application java

[Fermé]
Signaler
-
 beber005 -
Bonjour,

j'ai un problème avec une application en java qui fait le tri d'une chaîne de caractère donné en paramètre voila le code :

import java.awt.Color;
import java.awt.FlowLayout;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;


public class fenetre extends JFrame {
private JComboBox liste;
String[]tab=new String[100];
private JTextField field1;


public fenetre(){
super();
build();//On initialise notre fenêtre
}
private void build(){
setTitle("Tri d'un tableau"); //On donne un titre à l'application
setSize(300,200); //On donne une taille à notre fenêtre
setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
setResizable(false); //On interdit la redimensionnement de la fenêtre
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //On dit à l'application de se fermer lors du clic sur la croix
setContentPane(buildContentPane());
}
private JPanel buildContentPane(){
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
panel.setBackground(Color.WHITE);
field1 = new JTextField();
field1.setColumns(10);
panel.add(field1);
liste = new JComboBox(new OperateursModel());
panel.add(liste);

JButton bouton = new JButton(new TriAction(this, "TRIER"));
panel.add(bouton);
JLabel label = new JLabel();
panel.add(label);
return panel;
}
public JTextField getField1(){
return field1;
}


public OperateursModel getModelOperateurs(){
return (OperateursModel)liste.getModel();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
fenetre inst = new fenetre ();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
}

}





import java.util.ArrayList;

import javax.swing.DefaultComboBoxModel;


public class OperateursModel extends DefaultComboBoxModel {
private ArrayList<String> operateurs;
public OperateursModel(){
super();
operateurs = new ArrayList<String>();
operateurs.add("Tri Fusion");
operateurs.add("Tri par comptage");
operateurs.add("Tri par selection");
operateurs.add("Tri par insertion ");
}
public String getSelectedOperateur(){
return (String)getSelectedItem();
}
@Override
public Object getElementAt(int index) {
return operateurs.get(index);
}
@Override
public int getSize() {
return operateurs.size();
}
@Override
public int getIndexOf(Object element) {
return operateurs.indexOf(element);
}
}







import java.awt.Component;
import java.awt.Graphics;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.Icon;
import javax.swing.JOptionPane;


public class TriAction extends AbstractAction {
private fenetre fenetre;


public TriAction(fenetre fenetre,String texte){
super(texte);
this.fenetre = fenetre;
}
public void actionPerformed(ActionEvent e) {
String nombre1String = fenetre.getField1().getText();//On récupère la valeur dans le premier champ
String operateur = fenetre.getModelOperateurs().getSelectedOperateur();
char[] resultat = new char[nombre1String.length()] ;
int n=nombre1String.length();
if ("Tri par insertion".equals(operateur)){
resultat = Tri.TriInnsertion(nombre1String,n) ;

for (int l=0; l<resultat.length;l++)

System.out.println(""+resultat[l]);
}

JOptionPane.showMessageDialog(null,resultat);


}
}











public class Tri {



public static char[] TriInnsertion(String ch,int n){

int limTrie;
char aPlacer;
int placeTrouver;
int j;
char vect[]=new char [n];

for (int i=0;i<n;i++)
{
char d=ch.charAt(i);
vect[i]=d;
}
for(limTrie=1;limTrie < n;limTrie++){
aPlacer = vect[limTrie];
j = limTrie-1;
if(vect[j] < aPlacer){
placeTrouver = 1;
}
else{
placeTrouver = 0;
}
while((j >= 0) &&( placeTrouver == 0)){
vect[j+1] = vect[j];
j = j-1;

if(j >= 0){
if(vect[j] < aPlacer)
placeTrouver = 1;
}
else{
placeTrouver = 1;
}
}
vect[j+1] = aPlacer;
}

for (int l=0; l<vect.length;l++)

System.out.println(vect[l]);


return vect;
}

}

3 réponses

arrêtes de refiler le lien du site du zéro à chaque fois que tu réponds
Messages postés
38635
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
24 septembre 2021
2 001
bonjour

ok, mais quel est le problème ?
l'affichage ne fonctionne plus je sais pas pourquoi :(