nie widoczna wartosc pola

0

Witam wszystkich. Pisze prosty czat i mam dosc duzy problem a mianowicie nie moge wrzucic wartosci ze Stringa do strumienia.

moja klasa odpowiedzialna za wyglad posiada nastepujaca obsluge akcji:

static String wiadomosc ="";

poleTxt.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == 10)
{
wiadomosc = poleTxt.getText();
poleTxt.requestFocusInWindow();
poleTxt.setText("");
}
}
public void keyReleased(KeyEvent e) {};
public void keyTyped(KeyEvent e) {};

});

Jak widac to co jest w polu jest zapisywane do statycznego pola wiadomosc. Jednak w mojej klasie publicznej z metoda main wartosc tego pola jest niewidoczna. I szczerze mowiac nie wiem dlaczego.
Myslalem ze podstawy mam opanowane a siedze juz nad tym drugi dzien.

W klasie glownej zdefiniowalem strumien odbierajacy:

doSerwera = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));

while(true)
{

if(!KlientObsluga.wiadomosc.equals("")){
doSerwera.write(KlientObsluga.wiadomosc);
doSerwera.flush();
}

}

Pewnie odpowiedz jest prosta ale nie moge jej znalezc Prosze o pomoc.

0

Dostęp do tego pola jest ustawiony na pakietowy pole będzie widoczne tylko przez klasę w której je zdefiniowano lub w klasach w tym samym pakiecie.

http://www.javaworld.com/javaworld/jw-01-1997/jw-01-chat.html

0

Obie klasy sa w tym samym pakiecie. Jedna odpowiada za wyglad a druga glowna laczy sie z serverem i nasluchuje. Robiac rozne testy (System.out.println() :)) doszedlem do wniosku ze klasa laczaca sie z serverem po polaczeniu jakby staje sie niedostepna

zastepujac poprzedni kod takim

while(true)
{
System.out.println( "11");
}

te "11" wyswietla sie 3 razy i tyle potem nie dzieje sie nic. Nie rozumiem tego kompletnie.

A moze mi brakuje jakiegos strumienia zna ktos moze strumien ktory pobierze wartosc z txtField??

0

Byc moze moje pytanie powinno brzmiec. Jak przekazc wartosc z pola tekstowego do strumienia??

W klasie klient mam zdefioniowane 2 strumienie

BufferedReader odSerwera = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter doSerwera = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));

pobieram wiadomosc z pola textowego w taki sposob:

doSerwera.write(KlientObsluga.wiadomosc);
doSerwera.flush();

Jak latwo siedomyslic akcja nacisniecia klawisza enter przenosci wartosc z pola txt do stringa wiadomosc

problem w tym ze nie moge pobrac pola KlientObsluga.wiadomosc bo klasa glowna nie widzi tego pola co jest dziwne albo brakuje jakiegos strumienia albo nie wiem co:)

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