Moin Moin
ich habe eine Klasse, in der die Butten Actions stehen, im Konstruktor wird ein Objekt (client) der Klasse cClient erstellt.
dann rufe ich wenn ich auf den "connect" Button klicke, die Methode client.connect(); auf.
in cClient gibt es ein Objekt Socket socket;
in der Methode wird jetzt mit socket = new Socket(...) ein socket erstellt (klappt auch wunderbar.)
wenn ich jetzt aber auf den Button "send" klicke, wird die Methode client.send(); aufgerufen.
Da das ja eine Methode des gleichen Objektes ist, dachte ich, auch "socket" währe dann bekannt, "socket" ist aber "null".
ich hänge noch mal beide klassen als Code an und hoffe, dass ich da nur nen dummen Fehler gemacht habe, danke schon mal fürs eventuelle drüberschauen.....
cInteraktion
und cClient
ich habe eine Klasse, in der die Butten Actions stehen, im Konstruktor wird ein Objekt (client) der Klasse cClient erstellt.
dann rufe ich wenn ich auf den "connect" Button klicke, die Methode client.connect(); auf.
in cClient gibt es ein Objekt Socket socket;
in der Methode wird jetzt mit socket = new Socket(...) ein socket erstellt (klappt auch wunderbar.)
wenn ich jetzt aber auf den Button "send" klicke, wird die Methode client.send(); aufgerufen.
Da das ja eine Methode des gleichen Objektes ist, dachte ich, auch "socket" währe dann bekannt, "socket" ist aber "null".
ich hänge noch mal beide klassen als Code an und hoffe, dass ich da nur nen dummen Fehler gemacht habe, danke schon mal fürs eventuelle drüberschauen.....
cInteraktion
Code:
/**
*
* Beschreibung
*
* @version 1.0 vom 15.10.2007
* @author
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.*;
import java.io.*;
import java.net.*;
public class cInteraktion extends JButton
{
// Anfang Variablen
JTextArea ta_eingabe;
JTextArea ta_ausgabe;
JTextField tf_status;
cClient client;
Socket socket;
// Ende Variablen
// Anfang Ereignisprozeduren
public cInteraktion(JTextArea pTa_eingabe, JTextArea pTa_ausgabe, JTextField pTf_status)
{
this.ta_eingabe = pTa_eingabe;
this.ta_ausgabe = pTa_ausgabe;
this.tf_status = pTf_status;
client = new cClient();
}
public void btn_connectActionPerformed(ActionEvent evt)
{
client.connect(ta_eingabe, ta_ausgabe, tf_status);
}
public void btn_disconnectActionPerformed(ActionEvent evt)
{
}
public void btn_sendActionPerformed(ActionEvent evt)
{
client.send(ta_eingabe, ta_ausgabe, tf_status);
}
// Ende Ereignisprozeduren
}
und cClient
Code:
/**
*
* Beschreibung
*
* @version 1.0 vom 15.10.2007
* @author
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.*;
import java.io.*;
import java.net.*;
public class cClient
{
// Anfang Variablen
BufferedReader in;
String msg;
Thread read;
Socket socket;
// Ende Variablen
// Anfang Ereignisprozeduren
public cClient()
{
}
public void connect(JTextArea pTa_eingabe, JTextArea pTa_ausgabe, JTextField pTf_status)
{
try {
socket = new Socket("localhost", 1234);
pTa_ausgabe.setText(String.valueOf(socket));
pTf_status.setText("connected...");
pTf_status.setBackground(Color.GREEN);
read = new Thread(new tRead(pTa_ausgabe, socket));
read.start();
} catch(IOException e)
{
pTf_status.setText("disconnected...");
pTf_status.setBackground(Color.RED);
}
}
public void send(JTextArea pTa_eingabe, JTextArea pTa_ausgabe, JTextField pTf_status)
{
pTa_ausgabe.setText(String.valueOf(socket)+"hallo"); //**************hier wird dann null ausgegeben
}
// Ende Ereignisprozeduren
}