Hallo!
Ich bin gerade dabei ein SSH-Tunneling Programm zu schreiben. Darin gibt es einen Connect-Button in dem folgendes ausgeführt wird:
Nun in dieser Zeile wird von meiner Klasse Gateway eine int variable status neu gesetzt
Diese Variable bewirkt, dass ein von mir überarbeiteter CellRenderer für eine jList ein neues Icon in die Zelle der jList macht.
CellRenderer:
Das Problem ist, dass die Zellen immer erst aktualisiert werden nachdem das Programm außerhalb des actionPerformed ist.
Meine Frage: Wird die GUI eines Programmes prinzipiell während einem actionPerformed nicht aktualisiert? Und wenn doch, wieso bei mir erst danach?
Mfg Mister004
Ich bin gerade dabei ein SSH-Tunneling Programm zu schreiben. Darin gibt es einen Connect-Button in dem folgendes ausgeführt wird:
Code:
...sammle Daten für SSH-Tunnel
try {
//neue Session mit JSch aufbauen
JSch jsch = new JSch();
Session session = jsch.getSession(tempUsername, localIP, localPort);
session.setPassword(tempPassword);
session.setConfig(config);
session.connect();
session.setPortForwardingL(tunnelPort, gatewayName, gatewayPort);
gateway.setGatewayStatus(Gateway.CONNECT_SUCCESS);
} catch (JSchException ex) {
execLog.appendText("Verbindung konnte nicht hergestellt werden!\n");
gateway.setGatewayStatus(Gateway.CONNECT_FAILURE);
}
Nun in dieser Zeile wird von meiner Klasse Gateway eine int variable status neu gesetzt
Code:
gateway.setGatewayStatus(Gateway.CONNECT_SUCCESS);
Diese Variable bewirkt, dass ein von mir überarbeiteter CellRenderer für eine jList ein neues Icon in die Zelle der jList macht.
CellRenderer:
Code:
private class IconListRenderer extends DefaultListCellRenderer {
public IconListRenderer() {};
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
Gateway listValue = (Gateway)value;
ImageIcon icon = null;
if (listValue.getGatewayStatus() == Gateway.NOTCONNECTED)
icon = new ImageIcon("resources\\images\\connect_notconnected.png");
else if (listValue.getGatewayStatus() == Gateway.CONNECT_SUCCESS)
icon = new ImageIcon("resources\\images\\connect_success.png");
else if (listValue.getGatewayStatus() == Gateway.CONNECT_FAILURE)
icon = new ImageIcon("resources\\images\\connect_failure.png");
label.setIcon(icon);
return label;
}
}
Das Problem ist, dass die Zellen immer erst aktualisiert werden nachdem das Programm außerhalb des actionPerformed ist.
Meine Frage: Wird die GUI eines Programmes prinzipiell während einem actionPerformed nicht aktualisiert? Und wenn doch, wieso bei mir erst danach?
Mfg Mister004