JAva Frame Chriiss web Browser current thread
Bonjour
J'utilise une frame java qui implémente ActionListener, Runnable. cette frame intègre un webBrowser grace à la bibliothèque dj.native.swing. et un thread qui se connecte sur un serveur socket pour l'interception des évènements et à chaque évènement il affiche un URL dans le webBrowser.
Breff: ci dessou une partie de mon code:
Code:
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
|
/*imports*/
import chrriis.common.UIUtils;
import chrriis.dj.nativeswing.swtimpl.NativeInterface;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.Socket;
....
public class NewFrame extends Frame implements ActionListener, Runnable {
/** Creates new form NewFrame */
SimpleWebBrowserExample webBrowser = new SimpleWebBrowserExample();
String ServHost = "192.168.121.202";
Thread _t;
private String baseurl;
Connection connexion;
}
public NewFrame() throws SQLException, InterruptedException {
initialization();/* méthode qui initialise les composantes du frame ( Jbuttom, Jlabel....)
setVisible(true);
pack();
start();/*méthode qui initialise le thread d'écoute sur le port socket
}
la méthode run :
public void run() {
keepTrying = true;
while(keepTrying) {
AstConnect(ServHost,"id","user","passe");
// If we lose our connection or it fails, let's not hammer on asterisk.
try {
Thread.sleep(3000);
}
catch (Exception e) {}
}
}
void start() {
_t = new Thread(this);
_t.start();
} |
le problème est que ce thread d'écoute ne peut pas accèder sur le web browser pour changer l'URL.
J'ai toujours le message d'erreur :
J'ai essayer d'associer le thread d'écoute au thread de lancement de la frame. mais ceci plante l'affichage et le frame de s'initialise pas???
Code:
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
|
public void start() {
_t = Thread.currentThread();
_t.start();
}
la méthode main est la suivante:
UIUtils.setPreferredLookAndFeel();
NativeInterface.open();
NativeInterface.runEventPump();
java.awt.EventQueue.invokeLater( new Runnable() {
public void run() {
try {
try {
new NewFrame();
} catch (InterruptedException ex) {
Logger.getLogger(NewFrame.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (SQLException ex) {
Logger.getLogger(NewFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
} |
quelqu'un a une idée sur la communication entre les deux thread afin que le thread d'écoute sur le port socket puisse avoir accès sur le webbrowser???
Merci d'avance