Intendevo dire che se il thread non è implementato correttamente viene utilizzato come se fosse una semplice classe...
Ossia se hai usato l'ActionListener, ad esempio, il codice del thread viene eseguito nell'actionPerformed e non come se fosse un processo separato, bloccando così l'interfaccia ...
Esempietto:
codice:
import java.awt.*;
import java.awt.event.*;
public class prova extends Frame implements ActionListener
{
public prova ()
{
Button b1 = new Button("Premimi");
Button b2 = new Button("Premimi");
Button b3 = new Button("Premimi");
add (b1, "North");
add (b2, "Center");
add (b3, "South");
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
setSize(300,103);
setVisible (true);
}
public void actionPerformed(ActionEvent event)
{
while (true);
}
public static void main (String args[])
{
prova finestra = new prova ();
}
}
Se "esegui" questo codice il risultato è un interfaccia utente "bloccata", dopo la pressione di un qualsiasi tasto ...
Quindi controlla il thread. Magari è un thread "fittizio"