|
|
|
| [java][applet][débutant]Affichage par TexTwil |
mardi 26 octobre 2004 à 14:59:31 |
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.IOException;
import java.net.Socket;
public class MainPing extends JPanel implements ActionListener
{
private JTextArea affichage;
private JButton bouton;
private JPanel pannel;
private JFrame fenetre;
MainPing()
{
//super.setLayout(new GridLayout(3,1));
bouton = new JButton("Ping It");
affichage = new JTextArea("",10,30);
bouton.addActionListener(this);
add(bouton);
add(affichage);
}
public void actionPerformed(ActionEvent e)
{
pingIt();
}
public void pingIt()
{
long start =0, stop = 0;
Socket socket = null;
for(int i=0; i<10; i++)
{
try
{
start = System.currentTimeMillis();
socket = new Socket("www.free.fr", 80);
stop = System.currentTimeMillis();
Debug("Socket opened in "+(stop-start)+" ms. ");
}
catch (Exception e)
{
Debug("Site is not there.\n");
}
finally
{
try
{
if (socket != null)
socket.close();
Debug(" Closing socket ...\n");
Thread.sleep(2000);
}
catch (IOException e) { }
catch (InterruptedException e) { }
}
}
}
public void Debug(String message)
{
affichage.append(message);
}
private static void createAndShowGUI()
{
//Make sure we have nice window decorations.
JFrame.setDefaultLookAndFeelDecorated(true);
//Create and set up the window.
JFrame fenetre = new JFrame("JPing");
fenetre.setSize(400,500);
//fenetre.pack();
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
MainPing newContentPane = new MainPing();
newContentPane.setOpaque(true); //content panes must be opaque
fenetre.setContentPane(newContentPane);
//Display the window.
fenetre.show();
fenetre.setVisible(true);
}
public static void main(String[] args)
{
createAndShowGUI();
}
}
Salut
le problème n'est pas si complexe, mis à part de grossières erreurs au niveau de la structure de ton programme... Tu dois dissocier la vue du moteur de ton application et éviter de créer la vue dans la méthode Main... en gros ... Créer une classe ("Pinger") possédant une méthode statique (pingIt) prenant en argument l'adresse URL à pinger et renvoyant un String renvoyant le résultat du ping, qu'il soit correct ou pas, à toi de renvoyer un "code d'erreur" en String pour analyser. Créer ton JFrame avec ton bouton et ton textArea, tout ce qui est relatif à la vue... (exemple MaJFramePourPinguer) Dans ton code gérant l'event du bouton, tu fais appel à la méthode statique de la classe pinger (qui ne doit pas forcément être instanciée) dans une boucle. Du fait que cette méthode renvoie un String (qu'il soit le résultat du ping ou un de tes codes d'erreur, tu peux à ce moment là effectuer l'affichage de tes lignes de résultats une par une. Ce qui peut donner dans la gestion de l'event.. for(int i=0; i<10; i++){
String s = Pinger.pingIt()
if ( s = "erreur'){ // ton code erreur ou tes codes selon le cas, tu affiches et gères ton erreur
monTextArea.setText("s");
}
else monTextArea.setText(s);
voilà Chouba, Pochard d'assaut .. |
je penses qu'ecrit comme ça, chaque ligne s'ecrit au-dessu de la précendente, comment fair pour qu'elle s'affiche a la ligne!?
merci d avance
|
| 05/01 15h37 | java applet afficher image | Programmation | 05/01 15h37 | 0 |
| 17/11 11h31 | [JAVA] Applet signée, confirm accept certif. | Programmation | 17/11 15h20 | 5 |
| 27/03 13h04 | JAVA APPLET | Programmation | 27/03 14h07 | 1 |
| 25/03 14h44 | JAVA APPLET | Programmation | 25/03 14h44 | 0 |