Action Listener Problem

denis7788

Bekanntes Mitglied
Hallo!
Ich habe hier ein kleines "Chat Programm" geschrieben. es beinhaltet zwei Chatfenster, mit Anzeige des Verlaufs(Textarea), einer Eingabe(Texfield) einem Senden-Button und einem Label, das anzeigen soll, wieviele Wörter beide Chatpartner gemeinsam haben im gesamten Chat verlauf.
Es funktioniert alles, wenn ich folgende Zeile im Actionlistener weg lasse:
Code:
indexOfTxt = chat_2_txt.lastIndexOf(tag);
Die Code Zeile benötige ich aber, um zu prüfen, ob das gerade eingegebene Wort bereits im chatverlauf vorhanden ist, um es so mitzählen zu können.
Wenn ich die CodeZeile einbaue, reagiert der Button nicht.
Wenn ich die Zeile bei der Listener Klasse für Chat Fenster #2 weglasse, dann kann ich im Chat Fenster#1 erst eine NAchricht verschicken, nachdem ich schon eine über Chat Fenster 2 Verschickt habe.

Woran könnte das liegen? (Die beiden Klassen sind ganz unten im Code. Die Betroffenen Codezeilen auskommentiert).

Code:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Chat_Fenster extends JFrame {
	
	JTextArea chat1;
	JTextField input1;
	JButton send1;
	JLabel info1;
	JTextArea chat2;
	JTextField input2;
	JButton send2;
	JLabel info2;
	int indexOfTxt;
	int numberCommonTags;
	String chat_1_txt;
	String chat_2_txt;
	
	public static void main(String[]args) {
		
		Chat_Fenster f = new Chat_Fenster();
		f.Chat();
		
		
	}
	
	public void Chat() {
		
		JFrame chat_window1 = new JFrame("Chat#1");
		
		JPanel panel1 = new JPanel();
		JPanel panel11 = new JPanel();
		panel11.setLayout(new BorderLayout());
		
		this.chat1 = new JTextArea(15,20);
		chat1.setLineWrap(true);
		chat1.setEditable(false);
		this.input1 = new JTextField(25);
		this.send1 = new JButton("senden");
		send1.addActionListener(new SendButton1Listener() );
		this.info1 = new JLabel (numberCommonTags+" gemeinsame Tags!"); 
		
		panel11.add(chat1, BorderLayout.CENTER);
		panel11.add(info1, BorderLayout.SOUTH);
		panel1.add(input1);
		panel1.add(send1);
		
		chat_window1.getContentPane().add(BorderLayout.CENTER, panel11);
		chat_window1.getContentPane().add(BorderLayout.SOUTH, panel1);
		chat_window1.setSize(400,400);
		chat_window1.setVisible(true);
		
		
JFrame chat_window2 = new JFrame("Chat#2");
		
		JPanel panel2 = new JPanel();
		JPanel panel22 = new JPanel();
		panel22.setLayout(new BorderLayout());
		
		this.chat2 = new JTextArea(15,20);
		chat2.setLineWrap(true);
		chat2.setEditable(false);
		this.input2 = new JTextField(25);
		this.send2 = new JButton("senden");
		send2.addActionListener(new SendButton2Listener() );
		this.info2 = new JLabel(numberCommonTags+" gemeinsame Tags!");
		
		panel22.add(chat2, BorderLayout.CENTER);
		panel22.add(info2, BorderLayout.SOUTH);
		panel2.add(input2);
		panel2.add(send2);
		
		chat_window2.getContentPane().add(BorderLayout.CENTER, panel22);
		chat_window2.getContentPane().add(BorderLayout.SOUTH, panel2);
		chat_window2.setSize(400,400);
		chat_window2.setVisible(true);
		    
	}
	
	public class SendButton1Listener implements ActionListener {

		public void actionPerformed(ActionEvent arg0) {
			
			String tag = input1.getText();
			//indexOfTxt = chat_2_txt.lastIndexOf(tag);
			if(indexOfTxt!=-1) {
				numberCommonTags++;
			} 
			info1.setText(numberCommonTags+" gemeinsame Tags!"+chat_1_txt);
			info2.setText(numberCommonTags+" gemeinsame Tags!"+chat_2_txt);

			
			chat1.setText(chat1.getText()+"#1 "+input1.getText()+"\n");
			chat2.setText(chat2.getText()+"#1 "+input1.getText()+"\n");
			chat_1_txt = chat_1_txt + input1.getText();
			input1.setText("");
			
			
			
			
		}
	}
		
		
		public class SendButton2Listener implements ActionListener {
			public void actionPerformed(ActionEvent arg0) {
				
				String tag = input2.getText();
				//indexOfTxt = chat_1_txt.lastIndexOf(tag);
				if(indexOfTxt!=-1) {
					numberCommonTags++;
				}
				info1.setText(numberCommonTags+" gemeinsame Tags!"+chat_1_txt);
				info2.setText(numberCommonTags+" gemeinsame Tags!"+chat_2_txt);
				
				chat2.setText(chat2.getText()+"#2 "+input2.getText()+"\n");
				chat1.setText(chat1.getText()+"#2 "+input2.getText()+"\n");
				chat_2_txt = chat_2_txt + input2.getText();
				input2.setText("");
				
				
			}

	}
}
 

KingOfExceptions

Bekanntes Mitglied
bitte in JAVA-TAGS

Java:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Chat_Fenster extends JFrame {
	
	JTextArea chat1;
	JTextField input1;
	JButton send1;
	JLabel info1;
	JTextArea chat2;
	JTextField input2;
	JButton send2;
	JLabel info2;
	int indexOfTxt;
	int numberCommonTags;
	String chat_1_txt;
	String chat_2_txt;
	
	public static void main(String[]args) {
		
		Chat_Fenster f = new Chat_Fenster();
		f.Chat();
		
		
	}
	
	public void Chat() {
		
		JFrame chat_window1 = new JFrame("Chat#1");
		
		JPanel panel1 = new JPanel();
		JPanel panel11 = new JPanel();
		panel11.setLayout(new BorderLayout());
		
		this.chat1 = new JTextArea(15,20);
		chat1.setLineWrap(true);
		chat1.setEditable(false);
		this.input1 = new JTextField(25);
		this.send1 = new JButton("senden");
		send1.addActionListener(new SendButton1Listener() );
		this.info1 = new JLabel (numberCommonTags+" gemeinsame Tags!"); 
		
		panel11.add(chat1, BorderLayout.CENTER);
		panel11.add(info1, BorderLayout.SOUTH);
		panel1.add(input1);
		panel1.add(send1);
		
		chat_window1.getContentPane().add(BorderLayout.CENTER, panel11);
		chat_window1.getContentPane().add(BorderLayout.SOUTH, panel1);
		chat_window1.setSize(400,400);
		chat_window1.setVisible(true);
		
		
JFrame chat_window2 = new JFrame("Chat#2");
		
		JPanel panel2 = new JPanel();
		JPanel panel22 = new JPanel();
		panel22.setLayout(new BorderLayout());
		
		this.chat2 = new JTextArea(15,20);
		chat2.setLineWrap(true);
		chat2.setEditable(false);
		this.input2 = new JTextField(25);
		this.send2 = new JButton("senden");
		send2.addActionListener(new SendButton2Listener() );
		this.info2 = new JLabel(numberCommonTags+" gemeinsame Tags!");
		
		panel22.add(chat2, BorderLayout.CENTER);
		panel22.add(info2, BorderLayout.SOUTH);
		panel2.add(input2);
		panel2.add(send2);
		
		chat_window2.getContentPane().add(BorderLayout.CENTER, panel22);
		chat_window2.getContentPane().add(BorderLayout.SOUTH, panel2);
		chat_window2.setSize(400,400);
		chat_window2.setVisible(true);
		    
	}
	
	public class SendButton1Listener implements ActionListener {

		public void actionPerformed(ActionEvent arg0) {
			
			String tag = input1.getText();
			//indexOfTxt = chat_2_txt.lastIndexOf(tag);
			if(indexOfTxt!=-1) {
				numberCommonTags++;
			} 
			info1.setText(numberCommonTags+" gemeinsame Tags!"+chat_1_txt);
			info2.setText(numberCommonTags+" gemeinsame Tags!"+chat_2_txt);

			
			chat1.setText(chat1.getText()+"#1 "+input1.getText()+"\n");
			chat2.setText(chat2.getText()+"#1 "+input1.getText()+"\n");
			chat_1_txt = chat_1_txt + input1.getText();
			input1.setText("");
			
			
			
			
		}
	}
		
		
		public class SendButton2Listener implements ActionListener {
			public void actionPerformed(ActionEvent arg0) {
				
				String tag = input2.getText();
				//indexOfTxt = chat_1_txt.lastIndexOf(tag);
				if(indexOfTxt!=-1) {
					numberCommonTags++;
				}
				info1.setText(numberCommonTags+" gemeinsame Tags!"+chat_1_txt);
				info2.setText(numberCommonTags+" gemeinsame Tags!"+chat_2_txt);
				
				chat2.setText(chat2.getText()+"#2 "+input2.getText()+"\n");
				chat1.setText(chat1.getText()+"#2 "+input2.getText()+"\n");
				chat_2_txt = chat_2_txt + input2.getText();
				input2.setText("");
				
				
			}

	}
}
 

Marco13

Top Contributor
Schau mal in die Konsole, da dürfte eine NullPointerException rumfliegen.

Mit
String chat_1_txt = ""; // Nicht null sondern ein leerer String!
String chat_2_txt = ""; // Nicht null sondern ein leerer String!
könnte es gehen.

Abgesehen davon... kannst du mal überlegen, ob man den Code nicht kompakter gestalten könnte... Im Moment wird alles doppelt gemacht, einmal für jede Seite ... ist aber vielleicht nicht sooo wichtig....


EDIT: Naja, wenigstes der Name meines Vorposters war ein dezenter Hinweis :D
 

denis7788

Bekanntes Mitglied
Jop lag daran! thx!

Ja ist ein CodeChaos..ich weiß;)... hatte aber wenig Zeit dafür und habe noch nie was mit GUI und Events usw gemacht. Deshalb einfach dahingeschrieben um einfach auf Funktion zu prüfen. Werde ich aber noch ändern, va weil ich den Code später noch benötige...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Action-listener Allgemeine Java-Themen 6
M Test geht auf Travis und mit Github Action schief aber nicht lokal Allgemeine Java-Themen 3
Meeresgott Input/Output Polling mit (Action)-Listenern? Allgemeine Java-Themen 3
R Servelt mit <form action=""> aufrufen (.jsp) Allgemeine Java-Themen 7
X Action in Action aufrufen Allgemeine Java-Themen 2
T Button Action Allgemeine Java-Themen 10
S Action mehrmals klicken Allgemeine Java-Themen 3
N Action Events Allgemeine Java-Themen 12
I Action parallel abarbeiten Allgemeine Java-Themen 3
C Anfaenger Problem mit Action Handling. Allgemeine Java-Themen 2
berserkerdq2 Was heißt es mit FXML Listener zu setzen ind Buttons zu erstellen? Allgemeine Java-Themen 6
L Wie programmiert man einen Listener? Allgemeine Java-Themen 1
S Threads Serielle Schnittstelle mit Listener / Aufrufendes GUI Allgemeine Java-Themen 4
H Listener Verständnisproblem Allgemeine Java-Themen 5
S Key Listener mit Strg + s Allgemeine Java-Themen 12
K Threads Listener für Future finish Allgemeine Java-Themen 2
TheWhiteShadow Listener Reihenfolge Allgemeine Java-Themen 4
D Listener auf System.out.err / System.out.println Allgemeine Java-Themen 5
A Listener für constructor einer bestimmen Klasse Allgemeine Java-Themen 9
E Bild mit Listener einfügen Allgemeine Java-Themen 3
P Listener für Tastatureingaben ohne Focus Allgemeine Java-Themen 4
serjoscha WatchDog Thread und Listener Allgemeine Java-Themen 10
hdi Listener für Desktop-Veränderungen Allgemeine Java-Themen 7
T JTextField in Listener leeren Allgemeine Java-Themen 2
lenniii Listener & JList Allgemeine Java-Themen 3
K Key listener ohne Fokus aktiv behalten ? Allgemeine Java-Themen 12
G Code-Convention für Listener Allgemeine Java-Themen 2
T Observer vs Listener Allgemeine Java-Themen 18
S Listener Allgemeine Java-Themen 3
P Abstrakte Elternklasse als Listener Allgemeine Java-Themen 6
MQue KeyAction listener Allgemeine Java-Themen 2
M generische Listener Allgemeine Java-Themen 2
S Listener für Kalender Allgemeine Java-Themen 2
B Observer vs Listener (GUI-Programmierung) Allgemeine Java-Themen 5
J Listener für Ende eines Threads gesucht... Allgemeine Java-Themen 5
S Listener Implentierung bei Eingabe in Textfeld Allgemeine Java-Themen 2
G Objekt einer inneren Klasse als Listener Allgemeine Java-Themen 3
D Boolean Listener? Allgemeine Java-Themen 28
M Listener und Performance Allgemeine Java-Themen 9
D Observer/Observable Pattern vs. Listener-Konzept Allgemeine Java-Themen 4
G Listener auf aktuelles Datum / Uhrzeit Allgemeine Java-Themen 2
Escorter Eigenen Listener schreiben Allgemeine Java-Themen 3
E Gibt es so etwas wie einen Windows Listener? Allgemeine Java-Themen 6
T SelectionProvider und Listener Frage Allgemeine Java-Themen 14
I Listener, der zeitlich-periodisch aufgerufen wird Allgemeine Java-Themen 3
R Generische Listener und Sender Allgemeine Java-Themen 12
B Listener dynamisch setzen Allgemeine Java-Themen 6
A Listener Tastatur Allgemeine Java-Themen 3
E Wie: Eigener Listener, eigenes Event (möglichst einfach) Allgemeine Java-Themen 29
D Thread vs Listener Allgemeine Java-Themen 6
K Listener einem Objekt hinzufügen Allgemeine Java-Themen 3
S Listener-Problematik in komplexem Projekt Allgemeine Java-Themen 2
I Listener/Event selber machen. Allgemeine Java-Themen 4
M Time Listener ? Allgemeine Java-Themen 2
Z Zwei Listener zwischen zwei Klassen Allgemeine Java-Themen 4
B statusbar update -> mit thread oder listener? Allgemeine Java-Themen 7
M Bean Listener hinzufügen und Methode später überschreiben Allgemeine Java-Themen 27
G Flavor-Listener Allgemeine Java-Themen 6
E Listener für Änderung der Fenstergröße Allgemeine Java-Themen 3
W Listener an ein beliebiges Objekt hänger, der mir Änderung Allgemeine Java-Themen 8
Z Problem beim Aufruf eines Listener? Allgemeine Java-Themen 4
A HILFE: subclass von Hashtable mit listener aufstellen Allgemeine Java-Themen 5
krgewb Problem mit Umlauten und Eszett bei InputStream Allgemeine Java-Themen 3
Max246Sch Backtracking Problem Box Filler Allgemeine Java-Themen 6
NightVision402 VisualVM Startskript Problem Allgemeine Java-Themen 3
javaBoon86 Email Server Connection Problem Allgemeine Java-Themen 1
F Problem mit PDFBOX Library Allgemeine Java-Themen 1
A Java modul Problem Allgemeine Java-Themen 4
D Read JSON File Problem Allgemeine Java-Themen 9
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
J Problem mit JasperReports Allgemeine Java-Themen 8
M log4j Problem mit jlink Allgemeine Java-Themen 19
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
P Selenium . getText Problem Allgemeine Java-Themen 9
A Jar zu Exe Problem Allgemeine Java-Themen 13
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
A Thread.sleep Problem Allgemeine Java-Themen 2
A Problem bei der Nachbarschafttest Allgemeine Java-Themen 11
Splayfer Problem: no main manifest attribute Allgemeine Java-Themen 3
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
Splayfer JDA Problem mit MessageCounter Allgemeine Java-Themen 0
Splayfer Problem mit BufferedWriter Allgemeine Java-Themen 3
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
N Maven Problem mit Datenbanktreiber (H2 Embedded) Allgemeine Java-Themen 12
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
C ArrayList Problem Allgemeine Java-Themen 3
kev34 nim-Spiel problem Allgemeine Java-Themen 1
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
G Welches Problem besteht bei den Typparametern? Allgemeine Java-Themen 5
temi Problem mit Aufrufreihenfolge bei Vererbung Allgemeine Java-Themen 3
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
T PIM basierend auf netbeans via AnyDesk Problem Allgemeine Java-Themen 3
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
Kirby.exe Verständnis Problem bei Rucksack Problem Allgemeine Java-Themen 6
B Eclipse-Lombok-Problem Allgemeine Java-Themen 19
I Input/Output ObjectOutputStream - Problem Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben