Problem z EventQueue

0

Witam

Strasznie się głowię i nie umie wpaść dlaczego to co powinno działać nie działa.

Proszę zerknąć na kod źródłowy:

public class MojPanel extends JPanel
{
    private JButton przycisk;
    private JLabel etykieta;

    public MojPanel()
    {
        setLayout(new BorderLayout());

        przycisk = new JButton("Wyślij");
        add(przycisk, BorderLayout.NORTH);

        etykieta = new JLabel("Kliknij Przycisk");
        add(etykieta, BorderLayout.SOUTH);

        przycisk.addActionListener(new ActionListener()
        {

            public void actionPerformed(ActionEvent arg0)
            {
                new Thread(new ModyfikujEtykiete()).start();

                FTPClient f = new FTPClient();

                try
                {
                    f.connect(host);
                    f.login(login, haslo);
                    f.setFileType(2);

                    FileInputStream local = new FileInputStream("/home/axlinux/plik.jpg");
                    f.storeFile("plik.jpg", local);

                    System.out.println(f.isConnected());
                    f.disconnect();
                } catch (Exception ex) {System.out.println("Coś się skopciło"); }

                etykieta.setText("Wysyłanie zakończone");
            }

        });
    }


    class ModyfikujEtykiete implements Runnable
    {
        public void run()
        {
                EventQueue.invokeLater(new Runnable() {

                    public void run() {
                        etykieta.setText("Trwa łączenie i wysyłanie pliku.");
                    }
                });            
        }

    }
}

Chciałbym aby po przyciśnięciu przycisku na JLabel - etykieta wyświetliło się: "Trwa łączenie i wysyłanie pliku."
Jednak tak się nie dzieje, dopiero gdy wszystko się wykona w actionPerformed labelka zawiera to co powinna mieć zanim zacznie łączenie z serwerem. Podczas wysyłania zawiera parametr z konstuktora.

:(

Nie wiem co jest grane i dlaczego to nie działa, chociaż z opisu jaki znalazłem powinno zadziałać.

Dzięki za pomoc ;]

0

Metoda validate() powinna pomóc. Na końcu procedurki przycisku dodaj
super.validate();

1 użytkowników online, w tym zalogowanych: 0, gości: 1