Bonjour à tous!
Je suis en train de coder un client SSH en java à l'aide de la libriaire Jsch !
J'ai un soucis avec une des focntions que je veux dévolepper, je m'explique :
Je souhaite avoir une box qui me donne l'état de la connexion ssh (connecté, déconnecté, ...). Pour cela j'ai pensé à utiliser les listeners (notion que je découver en même temps).
J'ai lu plusieurs tutos et sujet sur différents forum, notament :
http://rom.developpez.com/java-listeners/
http://java.developpez.com/faq/gui/?...eners_Methode1
Mais j'ai du mal à comprendre le truc
Mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public interface StateListener extends EventListener { void stateModified(Boolean oldState, Boolean newState); }
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 public class Fenetre extends JFrame implements StateListener { private JPanel container = new JPanel(); private static Console console = new Console(); private JScrollPane scroll = new JScrollPane(console); private JTextArea logBox = new JTextArea(); private JScrollPane scroll2 = new JScrollPane(logBox); private GridBagLayout layout = new GridBagLayout(); private GridBagConstraints gbc = new GridBagConstraints(); public Console() throws IOException{ // Config Fenêtre console .addListener(this); // Config JTextArea Console // Config JTextArea Log // Config Container // Config GriBagLayout logBox.append("Connexion en cours ...\n"); this.setContentPane(container); this.setVisible(true); } @Override public void stateModified(Boolean oldState, Boolean newState) { if(oldState != newState) { if(newState) { logBox.append("Connecté ..."); } else logBox.append("Déconnecté ..."); } } }Je sais pas si vous avez compris quelque chose
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 public class Console extends JTextArea { private JSch jsch = new JSch(); private Channel channel; private user; private host; private port; private password; private Thread t; List<StateListener> listener = new ArrayList<StateListener>(); private Boolean n = false; private Boolean o = false; public Console(String fileName){ user = "*****"; host = "*****"; port = "*****"; password = "*****"; t = new Thread( new Lancer()); t.start(); } public void connecter() throws IOException, JSchException{ // Configuration connexion Jsch } public void addListener(StateListener Listener){ listener.add(Listener); } public void getState(){ n = (channel != null && channel.isConnected()); for(StateListener sl : listener) { sl.stateModified(o, n); } o = n; } class Lancer implements Runnable { // Utilisation des threads public void run() { try { connecter(); } catch (IOException | JSchException e) { e.printStackTrace(); } } } }mais si il y a besoin de plus de renseignement je les rajouterais
![]()
J'espère que vous pourrez me faire comprendre ce qui m'échappe =)
Merci d'avance les amis !
Julian
Partager