Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Java: Textausgabe in Fenster statt Konsole, WIE????????

BHen / 6 Antworten / Flachansicht Nickles

Hallo Experten!
Habe folgendes Problem:
Habe ein Programm geschrieben, welches die Zeit von einem Internetzeitserver holt. Es funktionniert folgendermassen: Wenn ich es anwerfe erscheint ein Fenster mit einem Button, sobald ich den Button drücke holt das Proggi die Zeit und gibt sie aus, leider nur über Konsole! Ich will aber, dass die Zeit in einem Textfield im Fenster ausgegeben wird, aber ich weiss nicht wie den eingelesenen String übergeben kann! Denke hat was mit der Schleife zu tun...
Danke für Eure Hilfe

Das Programm:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;


public class SZeit extends Frame //Hauptklasse SZeit, abgeleitet von der vordef. Klasse Frame
{ Color x = new Color(0,0,0);
String str2;
String str;

class CWindowLauscher extends WindowAdapter //Adapterklasse innehalb der Klasse SZeit
{ Color x =new Color (255,220,5);
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}


class ActionLauscher implements ActionListener //Ereignisklasse innehalb der Klasse SZeit
{
public void actionPerformed(ActionEvent e)
{

try {

Socket s = new Socket("unics.rrzn.uni-hannover.de",13); //neuer Socket zu rrzn...port 13
BufferedReader is = new //buffered, da zeilenweise ingelesen wird
BufferedReader(new InputStreamReader (s.getInputStream()));

boolean weiter = true;


while ((str = is.readLine())!=null)
{

System.out.println(str); //hier wird die Zeit auf der Konsole ausgegeben
str2=str;

}
System.out.println(str2);
}
catch (IOException a)
{
System.out.println(a);


}
}
}







public SZeit (String titel) //Konstruktor von Fenster(SZeit) und Button
{

super (titel);

setBackground(x);
Button knopf = new Button ("Zeit anzeigen");
setLayout (new FlowLayout());
knopf.addActionListener(new ActionLauscher());
add (knopf);

TextField text = new TextField();
text.setColumns(30);
text.setText("Hier sollte eigentlich die Zeit stehen"+str2);
add(text) ;
addWindowListener(new CWindowLauscher()); //Frame beim WindowListener anmelden



}

public static void main (String [] args) //Mainprogramm
{
SZeit fenster = new SZeit ("Zeit von rrzn.uni-hannover.de"); //neue Instanz der Klassse SZeit erstellen
fenster.setSize (300,150);
//fenster.pack();
fenster.setVisible(true);

}
}

bei Antwort benachrichtigen
BHen Borlander „ Weil in der Console bei jeder Ausgabe eine neue Zeile angehängt wird... Da...“
Optionen

Hey, Danke!!! An die if-Anweisung habe ich gar nicht mehr gedacht! Die while - Schleife ist rausgeflogen und durch if erstetzt worden. Und das Beste: Es läuft endlich!!!!! :-)

Gruss Bhen

bei Antwort benachrichtigen