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);
}
}
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];
17 mai 2011 à 13:10