R
raemy
Gast
Guten Tag euch allen
Ich habe ein kleines Problem, betreffend einer Textarea.
Ich bin an einer Client/Server Applikation (dachte mir trotzdem, dass ich in dieses Forum schreibe, da meine Frage nichts mit der Client/Server Verbindung zu tun hat), welche sich mit einem Controller verbinden und kommunizieren soll. Nun möchte ich, dass es alle Ereignisse in einer Textarea anzeigt.
Hier noch das GUI:
Wenn ich auf den Button "Verbinden" klicke, wird folgendes ausgeführt:
Methode für das Anzeigen eines Events:
Diese zwei Methoden befinden sich in einer Klasse Namens View.
Die Main Methode, sowie die connect Methode befinden sich in der Klasse App, welche im gleichen paket ist.
Methode um zu Verbinden:
Mein Problem ist nun, dass die TextArea den Text anzeigt, wenn ich auf den Button Verbinden klicke, jedoch nicht, wenn die Methode zum Verbinden ausgeführt wird. Die Methode displayEvents wird zwar ausgeführt und das System.out.println() funktioniert auch, was bedeutet, dass String events nicht null sein kann aber die Textarea zeigt nichts an.
ich habe es auch schon mit einem repaint() nach dem Füllen versucht, was jedoch keine Wirkung zeigte.
Meine Theorie ist nun, dass es einen zweiten Durchgang machen könnte, in dem es den String event auf "" setzt, jedoch habe ich keine Idee, wo und wie es dazu kommen kann.
Vielleicht kann mir jemand von euch helfen?
Ich bedanke mich schon im Voraus für jede Antwort.
Grüsse
Raemy
Ich habe ein kleines Problem, betreffend einer Textarea.
Ich bin an einer Client/Server Applikation (dachte mir trotzdem, dass ich in dieses Forum schreibe, da meine Frage nichts mit der Client/Server Verbindung zu tun hat), welche sich mit einem Controller verbinden und kommunizieren soll. Nun möchte ich, dass es alle Ereignisse in einer Textarea anzeigt.
Hier noch das GUI:
Wenn ich auf den Button "Verbinden" klicke, wird folgendes ausgeführt:
Java:
private void buttonDisconnectActionPerformed(java.awt.event.ActionEvent evt) {
displayEvents("click-connect"); //Methode, um ein Event auszugeben. Hier nur als Test.
if (app.isConnected() == false) {
app.connect(textIP.getText(), PORT);
// textIP.setEnabled(false);
} else {
JOptionPane.showMessageDialog(null, "Sie sind schon verbunden!", "Fehler", JOptionPane.OK_OPTION);
}
}
Methode für das Anzeigen eines Events:
Java:
public void displayEvents(String event) {
String msg = event + " - " + new SimpleDateFormat("HH:mm:ss.SSS").format(new Date());
textEvents.append(msg + "test" + "\n");
System.out.println(msg); //Test, ob msg etwas enthält, weil in der Area nichts angezeigt wird
}
Diese zwei Methoden befinden sich in einer Klasse Namens View.
Die Main Methode, sowie die connect Methode befinden sich in der Klasse App, welche im gleichen paket ist.
Methode um zu Verbinden:
Java:
public void connect(String ipString, int port) {
view = new View();
event = "Alles Banane bis hier";
view.displayEvents(event);
try {
ip = InetAddress.getByName(ipString);
event = "Verbindungsaufbau zu " + ip + " über den Port " + port;
view.displayEvents(event);
//1. creating a socket to connect to the server
try {
requestSocket = new Socket(ip, port);
//2. get Input and Output streams
out = new ObjectOutputStream(requestSocket.getOutputStream());
out.flush();
// in = new ObjectInputStream(requestSocket.getInputStream());
} catch (Exception ex) {
event = "Error: " + ex.getMessage();
view.displayEvents(event);
}
} catch (UnknownHostException unknownHost) {
event = "Versuch, einen unbekannten Host zu erreichen";
view.displayEvents(event);
}
if (requestSocket != null) {
if (out != null) {
connected = true;
view.enableButtons(true);
}
}
}
Mein Problem ist nun, dass die TextArea den Text anzeigt, wenn ich auf den Button Verbinden klicke, jedoch nicht, wenn die Methode zum Verbinden ausgeführt wird. Die Methode displayEvents wird zwar ausgeführt und das System.out.println() funktioniert auch, was bedeutet, dass String events nicht null sein kann aber die Textarea zeigt nichts an.
ich habe es auch schon mit einem repaint() nach dem Füllen versucht, was jedoch keine Wirkung zeigte.
Meine Theorie ist nun, dass es einen zweiten Durchgang machen könnte, in dem es den String event auf "" setzt, jedoch habe ich keine Idee, wo und wie es dazu kommen kann.
Vielleicht kann mir jemand von euch helfen?
Ich bedanke mich schon im Voraus für jede Antwort.
Grüsse
Raemy