Skip to content This repository Pull requests Issues Gist @Elyss 1 0 0 Elyss/QPV-Testeur Code Issues 0 Pull requests 0 Projects 0 Wiki Pulse Graphs Settings QPV-Testeur/src/mainform.java d86295a 22 minutes ago @Elyss Elyss f 149 lines (101 sloc) 4.46 KB import com.intellij.ide.util.gotoByName.ChooseByNameFilterConfiguration; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; /** * Created by BGADIL-PC on 09/01/2017. */ public class mainform { private JPanel panelmain; private JTextArea paste_lignes; private JButton button2; private JProgressBar progressBar1; private JLabel progress; private JComboBox selectpostcode; private JButton detecterColonnesButton; private JComboBox selectad; private JLabel champLigne; public mainform() { button2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Runnable runner = new Runnable() { public void run() { // Je récupère un tableau excel collé dans un champ texte, j'en fais un tableau qui stocke chaque ligne en fonction des sauts de ligne String[] lines = paste_lignes.getText().split("\\n"); String resultQPV = ""; int numLines = 0; //Je crois que ce code là est con, il compte mes lignes mais à priori lines.length me donne déjà la réponse. Mais je devais avoir une super raison for (int i = 0; i < lines.length; i++) { numLines++; } //Tant que ya des lignes... for (int i = 1; i < lines.length; i++) { String adresse = ""; String CP = ""; //...je fais pour chaque ligne un tableau en fonction des tabulations (cellules) et je calcule en % à quelle ligne on en est String[] cells = lines[i].split("\\t"); float percent_d = ((float) i / (float) numLines) * 100; int percent = (int) percent_d; //J'update la barre de proègrès pour savoir où ça en est et si ça plante progressBar1.setValue(percent); progress.setText(percent + "%"); champLigne.setText("En cours : ligne " + i + " " + adresse + " - " + CP); /* METHODE DE DETECTION AUTOMATIQUE DES CHAMPS for (int j = 0; j < cells.length; j++) { if (CheckAdresse.identify_me(cells[j]) == "CP") { CP = cells[j]; } if (CheckAdresse.identify_me(cells[j]) == "adresse") { adresse = cells[j]; } } */ //En gros dans l'interface j'indique à quelles colonnes se situent l'adresse et le code postal que je veux manipuler adresse = cells[selectad.getSelectedIndex()]; CP = cells[selectpostcode.getSelectedIndex()]; String QPV = null; //Sauf si c'est vide, j'envoie à ma fonction un peu occulte les variables. C'est une requêtte HTTP, avec un algo qui analyse la page pour savoir quoi me renvoyer comme conclusion if (adresse == "" || CP == "") { QPV = "erreur sur la ligne"; } else { try { QPV = CheckAdresse.Check(CP, adresse, adresse); } catch (IOException e1) { e1.printStackTrace(); } } //J'ajoute le résultat dans un string. Je sépare chaque entrée du string par un saut de ligne. Je pourrais faire un tableau, mais en fait je vais copier coller ce que va afficher cette variable, alors autant faire un string. resultQPV = resultQPV + QPV + "\n"; //System.out.println(i + " " + percent + " " + voie + " " + CP + " " + numero); } progressBar1.setValue(100); progress.setText("100%" + "\n" + "DONE"); paste_lignes.setText(resultQPV); } }; Thread t = new Thread(runner, "Code Executer"); t.start(); } }); detecterColonnesButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { selectpostcode.removeAll(); selectpostcode.removeAllItems(); selectad.removeAll(); selectad.removeAllItems(); String[] lines = paste_lignes.getText().split("\\n"); String[] cells = lines[0].split("\\t"); for (int i = 0; i < cells.length; i++) { selectpostcode.addItem(cells[i]); } for (int i = 0; i < cells.length; i++) { selectad.addItem(cells[i]); } } }); } public static void main(String[] args) { JFrame frame = new JFrame("mainform"); frame.setContentPane(new mainform().panelmain); frame.setSize(900, 400); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } Contact GitHub API Training Shop Blog About © 2017 GitHub, Inc. Terms Privacy Security Status Help