Hallo!
Ich habe folgendes Problem:
Ich habe ein Chat Programm bestehend aus zwei Fenstern, die neben den Chat-üblichen Elementen (Chatverlauf, Eingabe, Senden-Button) ein Label beinhalten, das die Anzahl gleicher Tags zählen soll.
Ich habe es bisher so gelöst, dass ich die Komplette Eingabe als String mit dem chatverlauf des Chatpartners verglichen habe, bzw. geprüft, ob dieser enthalten ist (mit lastIndexOf() ).
Nun möchte ich aber, das auch einzelne Worte aus einer Eingabe erkannt werden, die durch Kommas separiert sind. Zum Beispiel:
Chatpartner#1: Haus,Baum,Esel
Chatpartner#2: Esel,Auto,Haus
Hier soll dann als Anzahl gleicher Tags 2 heraus kommen.
Hat jemand eine Idee, wie ich das lösen könnte?
Hier der Code (Die angesprochene codestelle befindet sich in den letzten beiden Klassen)
Ich habe folgendes Problem:
Ich habe ein Chat Programm bestehend aus zwei Fenstern, die neben den Chat-üblichen Elementen (Chatverlauf, Eingabe, Senden-Button) ein Label beinhalten, das die Anzahl gleicher Tags zählen soll.
Ich habe es bisher so gelöst, dass ich die Komplette Eingabe als String mit dem chatverlauf des Chatpartners verglichen habe, bzw. geprüft, ob dieser enthalten ist (mit lastIndexOf() ).
Nun möchte ich aber, das auch einzelne Worte aus einer Eingabe erkannt werden, die durch Kommas separiert sind. Zum Beispiel:
Chatpartner#1: Haus,Baum,Esel
Chatpartner#2: Esel,Auto,Haus
Hier soll dann als Anzahl gleicher Tags 2 heraus kommen.
Hat jemand eine Idee, wie ich das lösen könnte?
Hier der Code (Die angesprochene codestelle befindet sich in den letzten beiden Klassen)
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());
chat2.setText(chat2.getText()+"#1 "+input1.getText());
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!");
info2.setText(numberCommonTags+" gemeinsame Tags!");
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("");
}
}
}