Hallo,
Ich habe einen kleinen Chat in Java (und PHP) geschrieben. Wenn ich das Programm in Eclipse öffne funktioniert alles problemlos, wenn der Chat aber in eine HTML-Datei eingebunden ist, bleibt die Anzeige immer gleich (auch nach erneutem öffnen des Browsers)!
Ich habe auch versucht die Dateiattribute zu ändern, aber es bringt nichts.
Hier der Code (Der PHP Code wird dafür ja wohl kaum wichtig sein):
Ich habe einen kleinen Chat in Java (und PHP) geschrieben. Wenn ich das Programm in Eclipse öffne funktioniert alles problemlos, wenn der Chat aber in eine HTML-Datei eingebunden ist, bleibt die Anzeige immer gleich (auch nach erneutem öffnen des Browsers)!
Ich habe auch versucht die Dateiattribute zu ändern, aber es bringt nichts.
Hier der Code (Der PHP Code wird dafür ja wohl kaum wichtig sein):
Java:
import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;
import java.awt.Font;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Calendar;
import java.util.Scanner;
import javax.swing.Timer;
public class Chat extends Applet{
Label lName = new Label("Name:");
TextField fName = new TextField(20);
TextArea Eingabe = new TextArea("", 3, 80, TextArea.SCROLLBARS_VERTICAL_ONLY);
TextArea Verlauf = new TextArea("", 20, 80, TextArea.SCROLLBARS_VERTICAL_ONLY);
String host = "http://www.smchristoph.de";
String pfad = "/Chat/chat_" + getDatum() + ".txt";
String skript = "/Chat/chatscript.php";
String url = host+pfad;
Scanner scanner;
Button schicken = new Button("Schicken");
ActionListener VerlaufsAktuallisierung = new ActionListener(){
public void actionPerformed(ActionEvent e){
String VerlaufS = "";
try {
scanner = new Scanner(new URL(url).openStream());
} catch (Exception ex) {
return;
}
while(scanner.hasNextLine())
VerlaufS += scanner.nextLine()+"\n";
scanner.close();
if(Verlauf.getText() != VerlaufS)
Verlauf.setText(VerlaufS);
}
};
ActionListener SchickenListener = new ActionListener(){
public void actionPerformed(ActionEvent e){
if(Eingabe.getText().length() < 1 || fName.getText().length() < 1)
return;
try{
String body = "name=" + URLEncoder.encode(fName.getText(), "UTF-8") + "&" +
"text=" + URLEncoder.encode(Eingabe.getText(), "UTF-8");
URL urlurl = new URL(host+skript);
HttpURLConnection connection = (HttpURLConnection) urlurl.openConnection();
connection.setRequestMethod("POST");
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setUseCaches(false);
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setRequestProperty( "Content-Length", String.valueOf(body.length()) );
OutputStreamWriter writer = new OutputStreamWriter( connection.getOutputStream() );
writer.write(body);
writer.flush();
BufferedReader reader = new BufferedReader(
new InputStreamReader(connection.getInputStream()) );
writer.close();
reader.close();
}
catch(Exception ex){System.err.println("Fehler");}
Eingabe.setText("");
}
};
public String getDatum(){
String Datum = "";
String Tag = Integer.toString(Calendar.getInstance().get(Calendar.DAY_OF_MONTH));
String Monat = Integer.toString(Calendar.getInstance().get(Calendar.MONTH)+1);
String Jahr = Integer.toString(Calendar.getInstance().get(Calendar.YEAR));
if(Tag.length() == 1)
Tag = "0"+Tag;
Datum += Tag;
if(Monat.length() == 1)
Monat = "0"+Monat;
Datum += "_"+Monat;
Datum += "_"+Jahr;
return Datum;
}
public void init(){
this.setLayout(null);
Verlauf.setEditable(false);
Verlauf.setBackground(Color.white);
lName.setFont(new Font("Serif", 0, 20));
lName.setBounds(30, 10, 60, 15);
fName.setBounds(90, 8, 150, 22);
Eingabe.setBounds(10, 40, 600, 70);
Verlauf.setBounds(10, 115, 600, 400);
schicken.setBounds(400, 7, 120, 25);
add(lName);
add(fName);
add(Eingabe);
add(Verlauf);
add(schicken);
schicken.addActionListener(SchickenListener);
Timer t = new Timer(1000, VerlaufsAktuallisierung);
t.start();
}
}
Zuletzt bearbeitet von einem Moderator: