Je suis incapable de mettre à jour mon interface utilisateur même après avoir enveloppé tout le code SWT dans "Display.getDefault().asyncExec
".Display.getDefault(). AsyncExec donne InvocationTargetException
Supposons que j'ai un écouteur qui s'appelle en cliquant sur un bouton.
Listener enterlisner = new Listener() {
@Override
public void handleEvent(Event event)
{
Display.getDefault().asyncExec(new Runnable()
{
public void run()
{
try
{
if((event.keyCode == SWT.CR || event.keyCode == 13 || event.type == SWT.Selection) && btnAdd.isEnabled())
{
new ProgressMonitorDialog(shell).run(true, true, new IRunnableWithProgress()
{
@Override
public void run(final IProgressMonitor monitor) throws InvocationTargetException,
InterruptedException
{
// method1()
// method2() {method2.1() , method2.2()}
// method3() {method3.1() , method3.2()}
// ....
// ...
// method10
}
});
}
}
catch (InvocationTargetException | InterruptedException e)
{
e.printStackTrace();
}
}
});
}
};
Quelqu'un pourrait-il s'il vous plaît se référer et penser link me faire savoir où je me trompe?
Comment bifurquer un morceau de méthodes qui s'exécute dans un thread d'arrière-plan?
Vous devez nous montrer un exemple minimal de votre code et le message exact que vous obtenez. –
Bonjour Greg. Vous pouvez cliquer sur le lien ci-dessus où j'ai écrit le code entier –
Il y a trop de code là et il ne dit pas clairement ce qu'est le InvocationTargetException. Nous avons besoin d'un [mcve]. Mais entourer tout dans asyncExec est presque certainement faux. –