Jak stworzyć prostą metode?

0

Dzień dobry!
 
Mam prosty program w Javie który ma za zadanie połączyć się z serwerem i wysyłać z terminala liczby.
Chciałbym przerobić program by liczba była wysyłana po wciśnięciu przycisku.
Tutaj obsługa przycisku który po wciśnięciu wywołuje metodę wyslijLiczbe

/* tworze przycisk */
JButton b1;
b1 = new JButton("Wyslij");
b1.addActionListener(this);
 
/* obsługa ActionListenera */
 
public void actionPerformed(ActionEvent zdarzenie)
    {
        Object zrodlo = zdarzenie.getSource();
        if (zrodlo == b1){
wyslijLiczbe(jakasliczba)
        }
    }

 
Tutaj pozostały kod, do niego potrzebuje dopisać metodę wyslijLiczbe
 

import java.io.*;
import java.net.*;
import java.util.*;
 
public class Client
{
    private Socket socket;
 
    /* Konstruktor próbuje połączyć się z serwerem */
    Client()
    {
        try {
            socket = new Socket("localhost", 2020);
            System.out.println("Klient dziala");
        }
        catch(IOException e) {
            System.out.println("Uruchom serwer");
            System.exit(1);
        }
     }
 
     void uruchom() throws Exception
     {
        PrintWriter out = new PrintWriter(
                            new OutputStreamWriter(
                                socket.getOutputStream()),true);
        
        BufferedReader in = new BufferedReader(
                            new InputStreamReader(
                                socket.getInputStream()));
        
        Scanner czytacz = new Scanner(System.in);
 
        /* 2. Działanie klienta */
        String liczba, odSerwera;
        while(true) {
            System.out.println("Podaj zgadywaną liczbę: ");
            liczba = czytacz.nextLine();
            out.println(liczba);
            
            odSerwera = in.readLine();
            System.out.println(odSerwera);
            if(odSerwera.equals("Zgadłeś")) break;
        }
        /* 3. Czynności po zakończeniu współpracy z serwerem */
        socket.close();
     }//koniec funkcji uruchom()
 
     public static void main(String args[]) throws Exception
     {
        Client client = new Client();
        client.uruchom();
     }
}

 
Próbowałem tak:
 

void wyslijLiczbe(String zmienna)
 {
 out.println(zmienna);
 }

Niestety nie działa.Wie ktoś jak to wykonać?
 
Bardzo proszę o pomoc. 
 
Pozdrawiam!

0

Co znaczy nie działa? Wysyła gdzie indziej, wysyła co innego?

0

Nie wysyła nic.

0

Coś kręcisz, przecież zmienna out nie jest znana w metodzie wyslijLiczbe, więc kodu nie można skompilować.

0

YY no masz racje, nie kompiluje się. Musze w wyslijLiczbe dziedziszczyć z uruchom i powinno działać?

1

Co chcesz dziedziczyć, metodę? Zrób z out pole w klasie (a nie zmienna lokalną metody uruchom). Wtedy out będzie znana w każdej metodzie.

0

W ten sposób?

import java.io.*;
import java.net.*;
import java.util.*;

public class Client 
{
    private Socket socket;
    public PrintWriter out;
    
    /* Konstruktor próbuje połączyć się z serwerem */
    Client()
    {
        try {
            socket = new Socket("localhost", 2020);
            System.out.println("Klient dziala");
        }
        catch(IOException e) {
            System.out.println("Uruchom serwer");
            System.exit(1);
        }
     }

     void uruchom() throws Exception
     {
        out = new PrintWriter(
                            new OutputStreamWriter(
                                socket.getOutputStream()),true);
         
        BufferedReader in = new BufferedReader(
                            new InputStreamReader(
                                socket.getInputStream()));
        
        Scanner czytacz = new Scanner(System.in);

        /* 2. Działanie klienta */
        String liczba, odSerwera;
        while(true) {
            System.out.println("Podaj zgadywaną liczbę: ");
            liczba = czytacz.nextLine();
            out.println(liczba);
            out.println("12");
            
            odSerwera = in.readLine();
            System.out.println(odSerwera);
            if(odSerwera.equals("Zgadłeś")) break;
        }
        /* 3. Czynności po zakończeniu współpracy z serwerem */
        socket.close();
     }//koniec funkcji uruchom()

     public static void main(String args[]) throws Exception
     {
         
        
         
        Client client = new Client();
        client.uruchom();
     }
}

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