Textfeld.append/.setText ohne Funktion

Alex2611

Mitglied
Hallo Zusammen,

hab ein kleines Problem aus dem ich nicht mehr schlau werde.

Ich habe 2 Klassen (Hauptklasse, mit main und eine Unterklasse)

Meine Unterklasse bekommt über einen DataInputStream einen String vom Server, die Unterklasse gibt diesen an eine Methode in der Hauptklasse weiter.
Die Methode splittet den String und durchläuft dann mit If-Anweisungen den String, damit der String in das richtige JTextArea oder JTextFeld eingetragen wird.

Es funktioniert alles, bis auf das der Text im TextArea oder TextFeld nicht angezeigt wird. Mittels Konsole wird an der richtigen If-Anweisung der String ausgegeben...

Die Methode soll je nachdem mittels .append(String) oder .setText(String) in die TextFelder/TextArea schreiben.

Auf die TextFelder/TextArea habe ich über die Methode zugriff, daran kann es also nicht liegen...

Wenn nötig kann ich auch den Quellcode posten, ist nur etwas länger und ich weiß nicht, ob er zum Problem lösen beitragen kann...

Danke schon mal für eure Hilfe.

Gruß Alexander :popcorn:
 

VfL_Freak

Top Contributor
Moin,

Es funktioniert alles, bis auf das der Text im TextArea oder TextFeld nicht angezeigt wird. Mittels Konsole wird an der richtigen If-Anweisung der String ausgegeben...
Die Methode soll je nachdem mittels .append(String) oder .setText(String) in die TextFelder/TextArea schreiben.

Wenn nötig kann ich auch den Quellcode posten, ist nur etwas länger und ich weiß nicht, ob er zum Problem lösen beitragen kann...
Grundlegend sollte ein "setText" bei den genannten Komponenten IMMER klappen

Da so keiner genau sagen kann, was Du wo machst oder nicht machst, wird es ohne den Code und eine konkrete Feherbeschreibung wohl nicht gehen ....

Gruß
Klaus
 

Alex2611

Mitglied
Hallo VfL_Frank,
danke schon mal für deine Antwort.
Mein Code steht weiter unten.... Das komische ist, dass ich überhaupt keine Fehlermeldung erhalte...:bahnhof:

Wie bereits gesagt, ist es etwas mehr an Codezeilen... Beim Client in Zeile 289ff. sollte die Nachricht in den TextArea angegeben werden. Die Konsolenausgaben geht einwandfrei...

Client:
[Java]
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.ScrollPane;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io_ObjectInputStream;
import java.io_ObjectOutputStream;
import java.io.PrintWriter;
import java.io.StringReader;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JToggleButton;
import javax.swing.ScrollPaneConstants;
import javax.swing.SwingUtilities;
import javax.swing.border.EmptyBorder;
import javax.swing.text.BadLocationException;
import javax.swing.text.html.HTMLEditorKit;

public class Client {

JLabel label = new JLabel(
"Chat f\u00FCr Rechnerkommunikation - SS 2014 - Client");
JLabel label_1 = new JLabel("Server-IP:");
JLabel lblServerIP = new JLabel("ip-adresse");
JLabel Label_2 = new JLabel("Eigene-IP:");
JLabel lblEigeneIP = new JLabel("ip-adresse");
JLabel label_5 = new JLabel("zur Zeit online:");
JTextArea listOnline = new JTextArea();
JLabel lblMeinNickname = new JLabel("Mein Nickname:");
JLabel lblNickname = new JLabel("Nickname");
JList listKanal = new JList();
JLabel lblMeineKanle = new JLabel("Meine Kan\u00E4le:");
JLabel label5 = new JLabel("Status:");
JLabel lblStatus = new JLabel("offline");
JTextArea listChatAlle = new JTextArea();
JTextArea txtMeinTXT = new JTextArea();
JLabel lblChatMitAllen = new JLabel("Chat mit allen:");
JButton senden = new JButton("Abschicken");
JTextArea txtLogBuch = new JTextArea();
JLabel lblLogbuch = new JLabel("LogBuch:");
ArrayList<String> Nachricht;
JScrollPane scrollPaneChat = new JScrollPane(listChatAlle);
JScrollPane scrollPaneText = new JScrollPane(txtMeinTXT);
JScrollPane scrollPaneLog = new JScrollPane(txtLogBuch);

Socket client;

public DataOutputStream NachrichtRaus;
public DataInputStream NachrichtRein;

public static void main(String[] args) {
Client c = new Client();
c.erstellenGUI();
}

public void erstellenGUI() {
JFrame frameclient = new JFrame();
JPanel panelclient = new JPanel();

JMenuBar menuBar = new JMenuBar();

JMenu aktion = new JMenu("Aktion");
JMenu channel = new JMenu("Kanal");
JMenu exit = new JMenu("Beenden");

JMenuItem verbinden = new JMenuItem("Verbinden");
verbinden.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {

verbindenmitserver();

}

});
JMenuItem trennen = new JMenuItem("Trennen");
JMenuItem channelNeu = new JMenuItem("Neuen Kanal");
JMenuItem channelbeitreten = new JMenuItem("Kanal beitreten");
JMenuItem channelloeschen = new JMenuItem("Kanal entfernen");
JMenuItem beenden = new JMenuItem("Beenden");

aktion.add(verbinden);
aktion.add(trennen);

channel.add(channelNeu);
channel.add(channelbeitreten);
channel.add(channelloeschen);

exit.add(beenden);

menuBar.add(aktion);
menuBar.add(channel);
menuBar.add(exit);

panelclient.setLayout(null);

label.setForeground(Color.DARK_GRAY);
label.setFont(new Font("Tahoma", Font.BOLD, 16));
label.setBounds(10, 11, 505, 36);
panelclient.add(label);

label_1.setForeground(Color.BLUE);
label_1.setBounds(373, 346, 99, 21);
panelclient.add(label_1);

lblServerIP.setForeground(Color.DARK_GRAY);
lblServerIP.setBounds(482, 346, 99, 21);
panelclient.add(lblServerIP);

Label_2.setForeground(Color.BLUE);
Label_2.setBounds(373, 291, 99, 21);
panelclient.add(Label_2);

lblEigeneIP.setForeground(Color.DARK_GRAY);
lblEigeneIP.setBounds(482, 291, 99, 21);
panelclient.add(lblEigeneIP);

label_5.setForeground(Color.BLUE);
label_5.setBounds(610, 58, 84, 21);
panelclient.add(label_5);

listOnline.setForeground(Color.DARK_GRAY);
listOnline.setBounds(610, 90, 162, 323);
panelclient.add(listOnline);

lblMeinNickname.setForeground(Color.BLUE);
lblMeinNickname.setBounds(373, 166, 99, 21);
panelclient.add(lblMeinNickname);

lblNickname.setForeground(Color.DARK_GRAY);
lblNickname.setBounds(482, 166, 99, 21);
panelclient.add(lblNickname);

listKanal.setForeground(Color.DARK_GRAY);
listKanal.setBounds(798, 90, 162, 323);
panelclient.add(listKanal);

lblMeineKanle.setForeground(Color.BLUE);
lblMeineKanle.setBounds(798, 58, 84, 21);
panelclient.add(lblMeineKanle);

label5.setForeground(Color.BLUE);
label5.setBounds(373, 223, 99, 21);
panelclient.add(label5);

lblStatus.setForeground(Color.DARK_GRAY);
lblStatus.setBounds(482, 223, 99, 21);
panelclient.add(lblStatus);

listChatAlle.setBounds(20, 90, 312, 323);
scrollPaneChat.setBounds(20, 90, 312, 323);
listChatAlle.setLineWrap(true);
listChatAlle.setWrapStyleWord(true);
scrollPaneChat.setViewportView(listChatAlle);
panelclient.add(scrollPaneChat);

txtMeinTXT.setBounds(20, 424, 312, 65);
scrollPaneText.setBounds(20, 424, 312, 65);
txtMeinTXT.setLineWrap(true);
txtMeinTXT.setWrapStyleWord(true);
panelclient.add(scrollPaneText);
scrollPaneText.setViewportView(txtMeinTXT);

lblChatMitAllen.setForeground(Color.BLUE);
lblChatMitAllen.setBounds(20, 58, 99, 21);
panelclient.add(lblChatMitAllen);

txtLogBuch.setBounds(610, 435, 350, 65);
scrollPaneLog.setBounds(610, 435, 350, 65);
txtLogBuch.setLineWrap(true);
txtLogBuch.setWrapStyleWord(true);
panelclient.add(scrollPaneLog);
scrollPaneLog.setViewportView(txtLogBuch);

lblLogbuch.setForeground(Color.BLUE);
lblLogbuch.setBounds(508, 429, 99, 21);
panelclient.add(lblLogbuch);

senden.setBounds(352, 448, 106, 23);
panelclient.add(senden);
senden.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
nachrichtsenden();
} catch (IOException e) {
e.printStackTrace();
}
}
});

frameclient.setVisible(true);
panelclient.setVisible(true);
frameclient.setJMenuBar(menuBar);

frameclient.setSize(1000, 600);

// Panel zum ContentPane (Inhaltsbereich) hinzufügen
frameclient.getContentPane().add(BorderLayout.CENTER, panelclient);

frameclient.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frameclient.setVisible(true);
}

public void verbindenmitserver() {

String LoginNachricht;
try {
lblServerIP.setText(JOptionPane
.showInputDialog("Server-IP eingeben: "));
lblNickname.setText(JOptionPane
.showInputDialog("Nickname eingeben: "));

lblEigeneIP.setText(InetAddress.getLocalHost().getHostAddress()
.toString());

String serverIP = lblServerIP.getText();

client = new Socket(serverIP, 3311);

NachrichtRein = new DataInputStream(client.getInputStream());
NachrichtRaus = new DataOutputStream(client.getOutputStream());

LoginNachricht = ("Anmeldung" + "!!" + lblNickname.getText() + "!!"
+ "Server" + "!!" + "Login Erfolgreich");
// System.out.println(LoginNachricht+" gesendet");


NachrichtRaus.writeUTF(LoginNachricht);
NachrichtRaus.flush();

Thread t = new Thread(new ClientThreads(client));
// ClientThreads ct = new ClientThreads(client);
t.start();

txtLogBuch.append("Netzwerkverbindung hergestellt\n");
lblStatus.setText("Verbunden");
listChatAlle.append("Test geht");

} catch (Exception e) {
txtLogBuch.append("Netzwerkverbindung konnte nicht hergestellt werden\n");
e.printStackTrace();

}
}

public void nachrichtsenden() throws IOException {

String Nachricht;

Nachricht = ("Nachricht" + "!!" + lblNickname.getText() + "!!" + "Alle"
+ "!!" + txtMeinTXT.getText());

// JOptionPane.showMessageDialog(null, Nachricht);

NachrichtRaus.writeUTF(Nachricht);
NachrichtRaus.flush();

txtMeinTXT.setText("");
txtMeinTXT.requestFocus();

}

public class nachrichtendekodieren{

public nachrichtendekodieren(String Nachricht){



String Absender, Empfänger, NachrichtenText, NachrichtenTyp;

listChatAlle.append(Nachricht);

if (Nachricht.contains("!!")) {
String[] nachrichtenteile = Nachricht.split("!!");

NachrichtenTyp = nachrichtenteile[0];
Absender = nachrichtenteile[1];
Empfänger = nachrichtenteile[2];
NachrichtenText = nachrichtenteile[3];

System.out.println(NachrichtenTyp + " " + Absender + " "+ Empfänger + " " + NachrichtenText);

if (NachrichtenTyp.equals("Nachricht") && Empfänger.equals("Alle")) {

System.out.println("Nachricht");
listChatAlle.append(Absender + ":" + NachrichtenText + "\n");


}
if ((NachrichtenTyp.equals("Anmeldung")) && (Absender != lblNickname.getText())) {
listOnline.append(Absender + "\n");
System.out.println("Anmeldung-fremd");

}

if (NachrichtenTyp.equals("Anmeldung") && Absender.equals(lblNickname.getText())) {
// System.out.println("normal steht das im Logbuch!! "+NachrichtenText);
txtLogBuch.append(NachrichtenText + "\n");
System.out.println("Anmeldung - eigen");

}
}
}
}
}


[/Java]

Der ClientThread

[Java]
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataInputStream;
import java.io.IOException;
import java.net.Socket;

import javax.swing.JButton;
import javax.swing.JOptionPane;

public class ClientThreads extends Client implements Runnable {

public DataInputStream NachrichtRein;
private Socket client;
private JButton btnnachrichtweiter;


public ClientThreads(Socket client) throws IOException {


this.client = client;
NachrichtRein = new DataInputStream(client.getInputStream());

}

public void run() {
String nachricht = null;


while (true) {

try {

nachricht = NachrichtRein.readUTF();

// System.out.println(nachricht);

if (nachricht != null) {

listChatAlle.append(nachricht+"von der Thread");
new nachrichtendekodieren(nachricht);


// JOptionPane.showMessageDialog(null, nachricht, null, 0);
}
} catch (NullPointerException e) {
e.printStackTrace();
// JOptionPane.showMessageDialog(null,
// "NullPointException"+nachricht, null, 0);
} catch (IOException e) {
e.printStackTrace();
// JOptionPane.showMessageDialog(null, "IOException", null, 0);
}

}

}

}
[/Java]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Button und Textfeld Darstellung AWT, Swing, JavaFX & SWT 3
B Scene Builder Textfeld Begrenzen AWT, Swing, JavaFX & SWT 3
T JavaFX MultiLine / MultiStyle Textfeld AWT, Swing, JavaFX & SWT 1
izoards Textfeld für Zeit AWT, Swing, JavaFX & SWT 4
E Frage zum Textfeld AWT, Swing, JavaFX & SWT 8
B Ausgaben einer Umrechnung vom Textfeld in ein Label AWT, Swing, JavaFX & SWT 2
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
J SWT Textfeld markieren und kopieren AWT, Swing, JavaFX & SWT 0
A Swing nur Zahlen im Spinner(Textfeld) eingeben ! AWT, Swing, JavaFX & SWT 16
L Ein Actionlistener für ein Textfeld, anstatt viele Actionlistener für ein Textfeld AWT, Swing, JavaFX & SWT 7
karlmasutra JavaFX Verzeichnispfad wählen und an Textfeld übergeben AWT, Swing, JavaFX & SWT 2
J Text in ein Textfeld eingeben und speichern AWT, Swing, JavaFX & SWT 27
cool_brivk24 Großes Textfeld AWT, Swing, JavaFX & SWT 8
J Textfeld nicht sichtbar AWT, Swing, JavaFX & SWT 2
P Knopf gedrückt -> Textfeld befüllen AWT, Swing, JavaFX & SWT 9
P Variable einer Eingabe in anderes Textfeld schreiben AWT, Swing, JavaFX & SWT 7
T [Neuling] Textfeld Inhalt überprüfen und falsche Stellen als msg Ausgeben AWT, Swing, JavaFX & SWT 1
V Swing Eingabe aus Textfeld abholen AWT, Swing, JavaFX & SWT 6
K Swing Textfeld verstecken aber benutzen AWT, Swing, JavaFX & SWT 15
J Swing Strings werden nicht in Textfeld geschrieben AWT, Swing, JavaFX & SWT 8
P Anfängerproblem mit Textfeld AWT, Swing, JavaFX & SWT 6
C Textfeld und Label werden nicht angezeigt (Ubuntu) AWT, Swing, JavaFX & SWT 2
F Textfeld Währungszahlen und automatische Aktualisierung AWT, Swing, JavaFX & SWT 14
R AWT AWT Textfeld durch Klick auf Button erstellen? AWT, Swing, JavaFX & SWT 3
D JavaFX Textfeld Eingabe validieren AWT, Swing, JavaFX & SWT 5
W Swing Nicht-Editierbares Textfeld in Panel in ScrollPane AWT, Swing, JavaFX & SWT 9
T SWT Button soll nur sichbar sein,wenn im Textfeld der Focus ist AWT, Swing, JavaFX & SWT 4
G Text im textfeld in einem Editor anzeigen AWT, Swing, JavaFX & SWT 18
A Swing Zwei Klassen mit Textfeld Eingaben vergleichen und Ausgabe erzeugen AWT, Swing, JavaFX & SWT 10
N JavaFX Textfeld nur Zahlen und nur von 5 bis 30 AWT, Swing, JavaFX & SWT 11
D Eigenes Textfeld AWT, Swing, JavaFX & SWT 8
A combobox automatisch in ein textfeld wechseln AWT, Swing, JavaFX & SWT 3
D textfeld string zu float AWT, Swing, JavaFX & SWT 5
C TextFeld in Verbindung zur ComboBox automatisch aktualisieren AWT, Swing, JavaFX & SWT 7
C Swing Button in Textfeld (JFormattedTextField) AWT, Swing, JavaFX & SWT 7
A Textfeld nachträglich einfügen AWT, Swing, JavaFX & SWT 4
D JSlider und Textfeld AWT, Swing, JavaFX & SWT 2
E Textfeld auslesen AWT, Swing, JavaFX & SWT 2
G Swing Formatiertes Textfeld mit Trennzeichen AWT, Swing, JavaFX & SWT 2
T Swing URL übergabe aus einem Textfeld AWT, Swing, JavaFX & SWT 17
L SWT Textfeld AutoCompletion AWT, Swing, JavaFX & SWT 3
SexyPenny90 NumberFormatException Textfeld AWT, Swing, JavaFX & SWT 4
P SWT Toolbar mit nur einer Schaltfläche und einem Textfeld AWT, Swing, JavaFX & SWT 2
C Textfeld automatisch befüllen AWT, Swing, JavaFX & SWT 6
S Swing Textfeld Sonderzeichen Blockiern AWT, Swing, JavaFX & SWT 2
alex_fairytail Swing Textfeld Action wenn geschrieben wird? AWT, Swing, JavaFX & SWT 6
C SWT Textfeld mit festem und variablen Inhalt AWT, Swing, JavaFX & SWT 13
J Textfeld Rotation AWT, Swing, JavaFX & SWT 2
C Live Suche mit TextFeld AWT, Swing, JavaFX & SWT 2
maddin86 Eingabe in Textfeld 1 synchron in Textfeld 2 ausgeben AWT, Swing, JavaFX & SWT 9
R JDateChooser Datumseingabe via TextFeld wird verworfen AWT, Swing, JavaFX & SWT 8
W Daten auf Textfeld in anderer Klasse verwenden AWT, Swing, JavaFX & SWT 4
A aus einem Textfeld in double parsen AWT, Swing, JavaFX & SWT 10
A TextField: Textfeld teilweise editierbar AWT, Swing, JavaFX & SWT 2
1 Textfeld auslesen AWT, Swing, JavaFX & SWT 11
G Swing Komponente gesucht (Textfeld mit Liste) AWT, Swing, JavaFX & SWT 2
C SWT: Mehrere Formatter in einem Textfeld AWT, Swing, JavaFX & SWT 6
D Markierter Text in Textfeld AWT, Swing, JavaFX & SWT 3
L SWT Darstellung des Datums in Textfeld? AWT, Swing, JavaFX & SWT 2
M SWT Breite von Textfeld nur ohne Layout änderbar AWT, Swing, JavaFX & SWT 2
H Ausgabe an Textfeld JTextField AWT, Swing, JavaFX & SWT 3
F In Textfeld Kommazahl anzeigen aber ohne Komma eingeben AWT, Swing, JavaFX & SWT 14
D textfeld mit 0 bis n ziffern AWT, Swing, JavaFX & SWT 11
D SWT String aus Textfeld auslesen und in eine Tabelle speichern AWT, Swing, JavaFX & SWT 5
C Button/Textfeld mit Variable verknüpfen AWT, Swing, JavaFX & SWT 4
X Eingabe in Textfeld soll Button aktivieren... AWT, Swing, JavaFX & SWT 12
S SWT Bei Auslösen eines Buttones ein Textfeld generieren AWT, Swing, JavaFX & SWT 2
T SWT String mitten ins Textfeld einfügen + richtige Cursorposition AWT, Swing, JavaFX & SWT 3
N Textfeld füllen sobald es den Fokus verliert AWT, Swing, JavaFX & SWT 2
M SWT Wie Textfeld hinzufügen, nach Auswahl von einem bestimmten Combobox-item? AWT, Swing, JavaFX & SWT 3
M Bilder in einem Textfeld darstellen AWT, Swing, JavaFX & SWT 2
D Objekt (Map) in Textfeld ausgeben AWT, Swing, JavaFX & SWT 10
O Intwerte in Textfeld dastellen AWT, Swing, JavaFX & SWT 4
T Textfeld autmoatisch aktualisieren AWT, Swing, JavaFX & SWT 5
G CellEditor - Kein "Textfeld" AWT, Swing, JavaFX & SWT 6
O [SWT] Autocomplete bei Textfeld in PreferencePage AWT, Swing, JavaFX & SWT 2
G SWT - TextFeld automatisch aktualisieren AWT, Swing, JavaFX & SWT 15
M Prüfen, ob in einem Textfeld/Tabelle eine Eingabe erfolgt is AWT, Swing, JavaFX & SWT 11
F addSelectionListener für ein Textfeld AWT, Swing, JavaFX & SWT 10
K Textfeld wird nur jedes zweite Mal aktualisiert AWT, Swing, JavaFX & SWT 3
V Shortcuts nicht im Textfeld AWT, Swing, JavaFX & SWT 2
A Fokus in ein Textfeld setzen funktioniert nicht AWT, Swing, JavaFX & SWT 3
A Werte in ein Textfeld übernehmen AWT, Swing, JavaFX & SWT 4
A Fehler beim Auslesen aus einem Textfeld AWT, Swing, JavaFX & SWT 2
C Komme nicht an mein textfeld AWT, Swing, JavaFX & SWT 3
B Textfeld, Rollbaken: Eingabe klappt nicht AWT, Swing, JavaFX & SWT 2
P Textfeld einbinden AWT, Swing, JavaFX & SWT 4
P TextFeld Focus entfernen AWT, Swing, JavaFX & SWT 2
7 Zeilenumbruch in Textfeld AWT, Swing, JavaFX & SWT 3
S Textfeld soll auf Änderungen von nutzer und program reagiern AWT, Swing, JavaFX & SWT 3
G Datensätze aus DB in TextFeld ausgeben AWT, Swing, JavaFX & SWT 18
F Wie Oberfläche verbessern? (JButtons, Textfeld verkleinern) AWT, Swing, JavaFX & SWT 5
K Textfeld Programm soll auf Eingabe warten! AWT, Swing, JavaFX & SWT 4
M In Textfeld Textbereiche sperren? AWT, Swing, JavaFX & SWT 2
N SWT Textfeld und Verifylistener AWT, Swing, JavaFX & SWT 11
D Textfeld mit unterschiedlichen Formatierungen AWT, Swing, JavaFX & SWT 3
P SWT: Textfeld an Fenstergröße anpassen AWT, Swing, JavaFX & SWT 3
G Textfeld auslesen und auf der Konsole ausgeben? AWT, Swing, JavaFX & SWT 10
J AWT-Textfeld Aussehen ändern AWT, Swing, JavaFX & SWT 13
T Datum in Textfeld automatisch formatieren AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben