Tach auch.
Wir sind dabei ein Schiff über mehrere Bildschirme "fahren" zu lassen
und zwar mit Hilfe einer Textdatei. Nicht mit irgendwelchen Netzwerkbefehlen
sondern ganz primitiv.
Also ein Schiff, das von links nach rechts fährt hab ich mittlerweile.
Mein Problem is nur, dass sobald die Spitze des Schiffes den rechten
Bildschirmrand berührt, ich eigentlich einen Satz wie "Com01 fertig."
in die Textdatei ausgeben möchte (damit das nächste Schiff auf einem
benachbarten Bildschirm beginnt zu fahren. -> die Textdatei ist für
alle zugänglich), was jedoch nicht funktioniert. Hab versucht den Befehl
mit in den Timer einzubauen. Geht aber nicht!
Wäre für einen Tip dankbar!
Klasse:
Alles anzeigen
Applet:
Alles anzeigen
Wir sind dabei ein Schiff über mehrere Bildschirme "fahren" zu lassen
und zwar mit Hilfe einer Textdatei. Nicht mit irgendwelchen Netzwerkbefehlen
sondern ganz primitiv.
Also ein Schiff, das von links nach rechts fährt hab ich mittlerweile.
Mein Problem is nur, dass sobald die Spitze des Schiffes den rechten
Bildschirmrand berührt, ich eigentlich einen Satz wie "Com01 fertig."
in die Textdatei ausgeben möchte (damit das nächste Schiff auf einem
benachbarten Bildschirm beginnt zu fahren. -> die Textdatei ist für
alle zugänglich), was jedoch nicht funktioniert. Hab versucht den Befehl
mit in den Timer einzubauen. Geht aber nicht!
Wäre für einen Tip dankbar!
Klasse:
Quellcode
- import java.io.*;
- import java.awt.*;
- import java.applet.*;
- public class Textdatei_bearbeiten
- {
- Image bild;
- public void FileWriter(String x)
- {
- Writer fw = null;
- try
- {
- fw = new FileWriter( "//Cd-server/Tauschplatz/fileWriter.txt" );
- fw.write( "" + x);
- fw.append( '\n' );
- }
- catch ( IOException e )
- {
- System.err.println( "Konnte Datei nicht erstellen" );
- }
- finally
- {
- if ( fw != null )
- try
- {
- fw.close();
- }
- catch ( IOException e )
- {
- }
- }
- FileReader();
- }
- public void FileReader()
- {
- Reader f = null;
- try
- {
- f = new FileReader( "//Cd-server/Tauschplatz/fileWriter.txt" );
- for ( int c; ( c = f.read() ) != -1; )
- System.out.print( (char) c );
- }
- catch ( IOException e )
- {
- System.err.println( "Error reading file!" );
- }
- finally
- {
- try
- {
- f.close();
- }
- catch ( Exception e )
- {
- }
- }
- }
- public void show(Hallo app, Graphics g, int i)
- {
- bild = app.getImage(app.getCodeBase(), "Segelschiff.jpg");
- g.drawImage(bild, -1690 + i, 300, 3000, 450, app);
- }
- }
Applet:
Quellcode
- import java.awt.*;
- import javax.swing.*;
- import java.awt.event.*;
- public class Hallo extends JApplet implements Runnable
- {
- private Image dbImage;
- private Graphics dbg;
- Textdatei_bearbeiten a;
- Thread timer;
- int milliseconds, seconds, i;
- boolean ende;
- public void init()
- {
- a = new Textdatei_bearbeiten();
- i = 0;
- }
- public void start()
- {
- if(timer == null)
- {
- timer = new Thread(this);
- timer.start();
- milliseconds = 0;
- seconds = 0;
- ende = false;
- }
- }
- public void stop()
- {
- if(timer != null)
- {
- timer.stop();
- timer = null;
- }
- }
- public void run()
- {
- while(true)
- {
- repaint();
- if(ende)
- {
- stop();
- }
- try
- {
- Thread.sleep(200);
- milliseconds += 200;
- seconds = (int) milliseconds / 1000;
- if (seconds <= 47)
- i += 7;
- else if (seconds > 32)
- ende = true;
- }
- catch(InterruptedException e)
- { }
- }
- }
- public void update (Graphics g)
- {
- // Initialisierung des DoubleBuffers
- if (dbImage == null)
- {
- dbImage = createImage (this.getSize().width, this.getSize().height);
- dbg = dbImage.getGraphics ();
- }
- // Bildschirm im Hintergrund löschen
- dbg.setColor (getBackground ());
- dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);
- // Auf gelöschten Hintergrund Vordergrund zeichnen
- dbg.setColor (getForeground());
- paint (dbg);
- // Nun fertig gezeichnetes Bild Offscreen auf dem richtigen Bildschirm anzeigen
- g.drawImage (dbImage, 0, 0, this);
- }
- public void paint(Graphics g)
- {
- g.setColor(Color.WHITE);
- g.fillRect(getWidth() - 100, 0, 100, 40);
- g.setColor(Color.RED);
- g.drawString("s: " + seconds, getWidth() - 50, 15);
- a.show(this, g, i);
- }
- }
Even Homer nods! But if you really want to f*ck up you'll need a computer!