JFrame się nie wyświetla.

2013-02-14 12:56
0

Witam. Piszę program typu klient-serwer. I mam taki kod, Niestety po uruchomieniu programu nie wyświetla mi się nic, ale program chodzi. Nie wyświetla się JFrame. Jednak gdy usunę metodę doRoboty z konstruktora JFrame się wyświetla. Co jest nie tak?

    private void doRoboty() {

        strumienieWyjsciowe = new ArrayList<PrintWriter>();

        try {

            ServerSocket serverSock = new ServerSocket(5500);

            while (true) {
                Socket gniazdoKlienta = serverSock.accept();
                PrintWriter pisarz = new PrintWriter(gniazdoKlienta.getOutputStream());

                strumienieWyjsciowe.add(pisarz);
                Integer n = (Integer) strumienieWyjsciowe.size();

                Thread t = new Thread(new ObslugaKlientow(gniazdoKlienta, n));
                t.start();
                System.out.println("Mamy polaczenie");
                System.out.println("Ilosc podlaczonych klientow: " + strumienieWyjsciowe.size());

                pisarz.println(strumienieWyjsciowe.size());

                pisarz.flush();
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Błąd: " + e.getMessage(), "Błąd", JOptionPane.WARNING_MESSAGE);
        }
    } 
    public Serwer2(BazaDanych x) {
        super("Serwer");
        bd = x;
        initComponents();
        setLocationRelativeTo(null);
        jLabel1.setText("SERWER");
        jLabel1.setFont(new Font("Helvetica", Font.BOLD, 24));
        jLabel1.setBounds(200, 20, 200, 20);

        if (bd.connected == false) {
            jTextArea1.append("Błąd połączenia z bazą\n");
        } else {
            jTextArea1.append("Połączono z bazą\n");
            doRoboty();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Błąd: " + e.getMessage(), "Błąd", JOptionPane.WARNING_MESSAGE);
        }
    }

Pozostało 580 znaków

2013-02-14 13:49
1

Program siedzi w nieskończonej pętli

while (true){...}

.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans, 2013-02-14 14:02

Pozostało 580 znaków

2013-02-14 15:35
0

Tak, ale najpierw chyba wszystko rysuje dopiero potem wchodzi w pętle? Jak to naprawić?

Pozostało 580 znaków

2013-02-14 15:41
1

Puścić to w osobnym wątku.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

2013-02-14 15:49
1

Spróbuj też zmienić kolejność, wpierw wyświetl okno, potem wejdź w pętlę. Teraz kolejność jest chyba inna. Gdzie jest wywołanie setVisible(true)?


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans, 2013-02-14 16:03
Zmienić kolejność? Tzn gdzie i co przenieść? Wydaje mi się, że powinno teraz najpierw rysować potem wchodzić w pętle. - olek1 2013-02-16 20:37
setVisible(true); po doRoboty(); - bogdans 2013-02-16 22:28

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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