IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

fermer la connexion


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 11
    Par défaut fermer la connexion
    Salut tt le monde ;je vient de developper une application qui sert a etablir une connxion url puis extraire les @email du site pour cela j'ai preparé 2 boutton 1 pour la connexion et ça marche bien et le 2eme pour fermer la connexion et l'interface et ce dernier ne marche pas SVP aider mois
    voici une partie de mon code peut vous aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
         package control;
     
         import java.awt.GridLayout;
         import java.awt.event.ActionEvent;
         import java.awt.event.ActionListener;
         import java.io.FileNotFoundException;
         //import gui.ConnectionPanel;
         import gui.LabeledProgressBar;
         import gui.LabeledTextField;
         import gui.ListPanel;
     
         import javax.swing.JButton;
         import javax.swing.JFrame;
         import javax.swing.JPanel;
     
         import objects.Database;
     
         public class MainClass extends JFrame implements ActionListener{
         private Controller controller;
         private JPanel mainPanel;
         private LabeledTextField urlPanel;
         private ListPanel urlListPanel;
         private ListPanel mailListPanel;
        // private ConnectionPanel connectionPanel;
         private LabeledProgressBar progressingPanel;
         private Database db=null;
         public MainClass(){
         mainPanel=new JPanel();
         urlPanel=new LabeledTextField("Url",20);
         urlListPanel=new ListPanel("Urls");
         mailListPanel=new ListPanel("E-mails");
        // connectionPanel=new ConnectionPanel();
         progressingPanel=new LabeledProgressBar("Progress");
         mainPanel.setLayout(new GridLayout(4,1));
         setSize(600,500);
         setResizable(true);
         mainPanel.add(urlPanel);
         mainPanel.add(urlListPanel);
         mainPanel.add(mailListPanel);
        //mainPanel.add(connectionPanel);
         mainPanel.add(progressingPanel);
         setContentPane(mainPanel);
         pack();
         setVisible(true);
         setDefaultCloseOperation(EXIT_ON_CLOSE);
         // actionlisteners
         this.urlPanel.getJButton().addActionListener(this);
         this.urlPanel.getStopButton().addActionListener(this);
        // this.connectionPanel.getConnectButton().addActionListener(this);
     
         }
     
         public static void main(String[] args) {
         new MainClass();
         /*Vector<String> mailList;
         mailList=new Vector();
         mailList=Page.extractMails(ListPanel urlGuiList,ListPanel mailGuiList,Database db);*/
        }
     
         // actions
     
        public void actionPerformed(ActionEvent src) {
         JButton source=(JButton)src.getSource();
         if(source.getText().equals("Commencer")){
         controller =Controller.getInstance(this.getUrlPanel().getText(),0,db);
     
        try {
        controller.process(this.getUrlListPanel(),this.getMailListPanel());
        } catch (FileNotFoundException e) {
         e.printStackTrace();
         }
         }else if(source.getText().equals("Arréter")){
         controller=null;
         }
     
        }
     
         // getters & setters
         public Controller getController() {
         return controller;
         }
     
         public void setController(Controller controller) {
         this.controller = controller;
         }
     
         public JPanel getMainPanel() {
         return mainPanel;
         }
     
         public void setMainPanel(JPanel mainPanel) {
         this.mainPanel = mainPanel;
         }
     
        public LabeledTextField getUrlPanel() {
         return urlPanel;
        }
     
         public void setUrlPanel(LabeledTextField urlPanel) {
         this.urlPanel = urlPanel;
         }
             public ListPanel getUrlListPanel() {
        return urlListPanel;
         }
     
         public void setUrlListPanel(ListPanel urlListPanel) {
         this.urlListPanel = urlListPanel;
         }
     
        public ListPanel getMailListPanel() {
         return mailListPanel;
         }
     
         public void setMailListPanel(ListPanel mailListPanel) {
         this.mailListPanel = mailListPanel;
         }
     
     
     
         public LabeledProgressBar getProgressingPanel() {
         return progressingPanel;
         }
     
         public void setProgressingPanel(LabeledProgressBar progressingPanel) {
         this.progressingPanel = progressingPanel;
         }
     
     
     
     
         }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
         package objects;
     
         import java.io.FileNotFoundException;
         import java.io.IOException;
         import java.io.InputStream;
         import java.net.MalformedURLException;
         import java.net.URL;
         import java.net.URLConnection;
     
         public class Explorer {
         public String getHtmlFromUrl(String adresse){
         String toreturn = "";
         try {
         //creation d'un objet URL
         URL url = new URL(adresse);
         // on etablie une connection a cette url
         URLConnection uc= url.openConnection();   
         InputStream in = uc.getInputStream();
         // on lit le premier bit
        int c = in.read();
         StringBuilder build = new StringBuilder();
         while (c != -1) {
         build.append((char) c);
         c = in.read();
         }
         //on retourne le code de la page
         toreturn = build.toString();
         }
         catch (MalformedURLException e) {
         } catch (Exception e) {
         }
         return toreturn;
         }
     
         }

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Pas besoin de second bouton.
    Le façon de procéder pour des flux est la suivante:

    1 - Ouvrir le flux
    2 - Récupérer les données du flux
    3 - Fermer le flux (de toute façon il ne servira à rien d'autre vu que tout le contenu a été lu, et que rien d'autre ne sera envoyé par le serveur dessus je suppose). De fait tout flux ouvert doit être refermé le plus tôt possible, c'est à dire que l'on en a extrait toutes les données attendues pôur des problématiques de ressources (en effet un flux non fermer empêchera ton application de s'arrêter dans certains cas et ainsi de suite.

    De fait la fermeture de ta connexion doit se faire dans la classe Explorer cf: http://java.developpez.com/faq/java/...ererRessources

    De plus, toute action sur des IO, qui est par essence un opération longue et bloquante (comme par exemple ta récupération de données depuis un site web) doit être faite dans un Thread en dehors de l'interface graphique cf ce tuto pour l'explication du pourquoi du comment et le façon de procéder.


    Ensuite ton second bouton ne fait absolument rien de fait:
    Il ne fait que mettre à nul la référence de ta classe vers le Controller, autant dire que ça ne fait keutchi.
    Prévois plutôt dans ta classe Controller une méthode permettant de quitter proprement l'application. Pour fermer une application il suffit d'appeler la méthode dispose d'une JFrame qui libérera les ressources afférentes à Swing, et s'il ne reste pas de saloperie du genre Thread non fini ou ressource non fermée, ton application se terminera de sa propre initiative tout tranquillement.

Discussions similaires

  1. [SQL-Server] BACKUP - Fermer les connexions de force
    Par Drahu dans le forum Administration
    Réponses: 12
    Dernier message: 28/07/2009, 23h49
  2. Réponses: 9
    Dernier message: 16/05/2007, 19h30
  3. Réponses: 3
    Dernier message: 31/10/2006, 16h15
  4. Réponses: 4
    Dernier message: 30/10/2006, 10h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo