Hilfe beim Java-Applet Beispiel

Status
Nicht offen für weitere Antworten.

iCox87

Mitglied
So weit bin ich schon, leider weiss ich nicht wie ich die Diagonalen Linien bzw. die nach einander ablaufen lassen soll

import java.awt.*;

import java.applet.Applet;
public class Nikolaus extends Applet
{
public void paint( Graphics g )
{
g.setColor(Color.BLUE);
g.drawRect(100,150,200,100);
g.setColor(Color.RED);
g.drawLine(100,150,200,50);
g.drawLine(300,150,200,50);
}
}
 

The_S

Top Contributor
Na das schaut doch schon besser aus. Wenn du zeigst, dass du schon was gemacht hast und eine konkrete Frage stellst, ist die Wahrscheinlichkeit sehr viel höher das dir geholfen wird. Du kannst nach jeder gezeichneten Linie ein Thread.sleep(milliseconds); einbauen. Dann wartet er kurz mit dem Zeichnen :) . Und es wäre klug das ganze in einen extra Thread auszulagern, damit der Rest der Anwendung nicht blockiert wird.
 

iCox87

Mitglied
import java.awt.*;
import java.applet.Applet;

public class Nikolaus extends Applet
{
public void paint( Graphics g )
{
int delay = 500;
g.setColor(Color.BLACK);
g.drawRect(100,150,200,100);
Thread.sleep(delay);
g.setColor(Color.BLACK);
g.drawLine(100,150,200,50);
g.drawLine(300,150,200,50);
}
}


Eclipse zeigt mir Fehler bei Thread.sleep...

Was hab ich falsch gemacht?
 

The_S

Top Contributor
joa, dann heißts Fehlermeldung lesen können. um Thread.sleep brauchste noch nen try - catch Block. Und wie gesagt, extra Thread, sonst wird dein Applet erst geladen wenn alles komplett gezeichnet wurde ;) .
 

dr.pepper

Mitglied
du musst sachen importieren...

hier wär der quelltext dazu das die Thread-line geht.

import java.applet.Applet;
import java.util.*;
import java.awt.*;
import java.lang.Thread;
import java.lang.InterruptedException;
public class Nikolaus extends Applet
{
public void paint( Graphics g )
{
int delay = 500;
g.setColor(Color.BLACK);
g.drawRect(100,150,200,100);
Thread.sleep(delay);
g.setColor(Color.BLACK);
g.drawLine(100,150,200,50);
g.drawLine(300,150,200,50);
}
}


viel spaß beim testen
 

iCox87

Mitglied
Hobbit_Im_Blutrausch hat gesagt.:
joa, dann heißts Fehlermeldung lesen können. um Thread.sleep brauchste noch nen try - catch Block. Und wie gesagt, extra Thread, sonst wird dein Applet erst geladen wenn alles komplett gezeichnet wurde ;) .

Ohje nun versteh ich Bahnhof :shock: Das sagt mir alles nix
 

The_S

Top Contributor
Musst du das von der Schule aus machen? Hat der Lehrer nix dazu gesagt? Habt ihr noch nix mit Threads bzw. Timer gemacht? Falls nein is das n Ding der Unmöglichkeit ... (für dich zumindest ;) ).
 
G

Guest

Gast
Jepp, ist für die Schule, ist halt Arbeitsauftrag sollen wir bis morgen fertig haben. Ich weiss einfach nicht weiter, wir sind noch ganz am Anfang in java un der meniste das es leicht ist :?
 

The_S

Top Contributor
Ich hab mal schnell ein JFrame erstellt. Musst es nur noch als Applet umschreiben. Und ich würde damit keine diagonalen Linien zeichnen, bei denen sich x und y nicht um den selben Wert verringern bzw. erhöhen ;) .

Code:
import javax.swing.*;
import java.awt.*;

public class NikolausTest extends JFrame {
	
	private boolean ani = false;
	
	public NikolausTest() {
		
		setSize(300, 400);
		setVisible(true);
	}
	
	public void paint(Graphics g) {
		
		super.paint(g);
		if (ani) {
			Graphics2D g2d = (Graphics2D)g;
			paintStrich(250, 250, 350, 150, g2d);
			paintStrich(250, 50, 150, 150, g2d);
			paintStrich(50, 50, 150, 350, g2d);
			paintStrich(50, 250, 350, 350, g2d);
			paintStrich(250, 50, 350, 150, g2d);
			paintStrich(50, 150, 150, 50, g2d);
			paintStrich(150, 250, 50, 150, g2d);
			paintStrich(250, 50, 150, 350, g2d);
			g2d.setColor(getBackground());
			paintStrich(50, 250, 350, 150, g2d);
			paintStrich(250, 150, 150, 50, g2d);
			paintStrich(150, 50, 50, 150, g2d);
			paintStrich(50, 250, 150, 350, g2d);
			paintStrich(250, 50, 350, 350, g2d);
			paintStrich(50, 50, 350, 150, g2d);
			paintStrich(50, 250, 150, 150, g2d);
			paintStrich(250, 250, 150, 350, g2d);
			ani = false;
		}
	}
	
	private void paintStrich(int x1, int x2, int y1, int y2, Graphics2D g) {
		
		if (x1 == x2) {
			paintY(x1, y1, y2, g);
		}
		else if (y1 == y2) {
			paintX(x1, x2, y1, g);
		}
		else {
			paintDiagonal(x1, x2, y1, y2, g);
		}
	}
	
	private void paintDiagonal(int x1, int x2, int y1, int y2, Graphics2D g) {
		
		if (x1 < x2 && y1 < y2) {
			for (int x = x1, y = y1; x < x2; x++, y++) {
				g.drawLine(x, y, x, y);
				try {
					Thread.sleep(5);
				}
				catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
		else if (x1 > x2 && y1 > y2){
			for (int x = x1, y = y1; x > x2; x--, y--) {
				g.drawLine(x, y, x, y);
				try {
					Thread.sleep(5);
				}
				catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
		else if (x1 < x2 && y1 > y2){
			for (int x = x1, y = y1; x < x2; x++, y--) {
				g.drawLine(x, y, x, y);
				try {
					Thread.sleep(5);
				}
				catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
		else if (x1 > x2 && y1 < y2){
			for (int x = x1, y = y1; x > x2; x--, y++) {
				g.drawLine(x, y, x, y);
				try {
					Thread.sleep(5);
				}
				catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
	}
	
	private void paintY(int x1, int y1, int y2, Graphics2D g) {
		
		if (y1 < y2) {
			for (int i = y1; i < y2; i++) {
				g.drawLine(x1, i, x1, i);
				try {
					Thread.sleep(5);
				}
				catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
		else {
			for (int i = y1; i > y2; i--) {
				g.drawLine(x1, i, x1, i);
				try {
					Thread.sleep(5);
				}
				catch (InterruptedException e) {
					e.printStackTrace();
				}
			}	
		}
	}
	
	private void paintX(int x1, int x2, int y1, Graphics2D g) {
		
		if (x1 < x2) {
			for (int i = x1; i < x2; i++) {
				g.drawLine(i, y1, i, y1);
				try {
					Thread.sleep(5);
				}
				catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
		else {
			for (int i = x1; i > x2; i--) {
				g.drawLine(i, y1, i, y1);
				try {
					Thread.sleep(5);
				}
				catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
	}
	
	public void drawHouse() {
		ani = true;
		repaint();
	}
	
	public static void main(String[] args) {
		
		new NikolausTest().drawHouse();
	}
}

Einfach kompilieren und ausführen. Ich denke den Rest bekommste selber hin :D
 

dr.pepper

Mitglied
nicht schlecht, meiner sah damals ein wenig "primitiver" aus, wobei ich das auch noch nicht lange mache, bzw. eigentlich acuh erst angefangen... aber @ icox, hau jetz in der schule dafür die 1 auch raus ;)
 

The_S

Top Contributor
"Der" is auch noch sehr primitiv bzw. fehleranfällig und schlampig gecoded. Aber da jetzt noch was komplexeres für ne einfache Schulaufgabe draus zu machen ... nö ;)
 
G

Guest

Gast
Super Klasse :cool: danke, aber eins noch, wie umschreibe ich das zu einen Applet, ich erkenn da keinen Unterschied?

danke
 

The_S

Top Contributor
Applet hat ne "public void init" Methode, Applikation "public static void main", Applikation erbt z. B. von JFrame, Applet von JApplet. Außerdem brauchste bei nem Applet net erst ne neue Instanz von erzeugen ;) usw. usf. ...
 
G

Guest

Gast
mh das bringt mich nicht wirklich weiter....man man ich muss noch viel lernen in Java :cry:
 

Leroy42

Top Contributor
Hobbit_Im_Blutrausch hat gesagt.:
Ich hab mal schnell ein JFrame erstellt. Musst es nur noch als Applet umschreiben.
Code:
for (int x = x1, y = y1; x < x2; x++, y++) {
  g.drawLine(x, y, x, y);
  try {
    Thread.sleep(5);
  } catch (InterruptedException e) {e.printStackTrace();}
}

:shock: Und daß passiert dir als Thread-Experten? :autsch: :autsch:

:meld: Nicht zu früh mit dem Glühwein-Vorkosten beginnen! :meld:
 

The_S

Top Contributor
Hobbit_Im_Blutrausch hat gesagt.:
"Der" is auch noch sehr primitiv bzw. fehleranfällig und schlampig gecoded. Aber da jetzt noch was komplexeres für ne einfache Schulaufgabe draus zu machen ... nö ;)

Beantwortet das deine "Frage" Leroy42? :bae:
 

Leroy42

Top Contributor
Nein!

So wie du das gecodet hast, werden die drawLine-Anweisungen
in EDT ausgeführt und die sleep-Anweisungen bewirken somit
nichts.

Es müßte eher aussehen.

Code:
int currentLine = 0;

void paint(Graphics g) {
...
  switch (currentLine) {
    case 7 : g.drawLine("letzte Linie"); 
    case 6 : g.drawLine("vorletzte Linie");
    ...
  }
}

und separat

Code:
new Thread(new Runnable() {
  public void run() {
    for (currentLine=0; currentLine < 8; ++currentLine) {
      repaint();
      try {Thread.sleep(250);} catch ...
    }
  }
}
 

The_S

Top Contributor
Also wenn ich mein Programm teste, dann funktioniert es ohne Probleme. Es ist zwar - keine Frage - total scheiße gecoded, aber es funktioniert ... Kannst ja ma ausprobieren ;)
 
G

Guest

Gast
könnte das einer bitte richtig ( gut Codieren ) es funktioniert zwar aber offenbar hats halt eine Fehler, die ich aber nicht entdecken kann :roll:
 

The_S

Top Contributor
lol, was erwartest du? Es ist schon überdurchschnittlich das dir jemand überhaupt die Lösung vorgekaut hat. Und jetzt erwartest du noch ein vollständig gut ausprogrammiertes Programm für lau? Überweis mir 10 Euro, dann bekommste ein richtig schönes und fehlerfreies ... :roll: :autsch:
 

dr.pepper

Mitglied
da ich mit dir (icox) wohl so auf dem selben level bin kannst du vllt hiermit was anfangen, ist verdammt simpel aber erfüllt seinen zweck, dein häuschen steht....

Code:
import java.applet.Applet;
import java.awt.Graphics;

public class test extends Applet
{

    public void init()
    {
    }

    public void paint(Graphics g)
    {
        try
        {
            char c = '\226';
            byte byte0 = 10;
            char c1 = '\372';
            int i = 500;
            Thread.sleep(i);
            g.drawLine(byte0, c1, byte0, c1 - c);
            Thread.sleep(i);
            g.drawLine(byte0, c1 - c, byte0 + c / 2, c1 - (3 * c) / 2);
            Thread.sleep(i);
            g.drawLine(byte0 + c / 2, c1 - (3 * c) / 2, byte0 + c, c1 - c);
            Thread.sleep(i);
            g.drawLine(byte0 + c, c1 - c, byte0 + c, c1);
            Thread.sleep(i);
            g.drawLine(byte0 + c, c1, byte0, c1 - c);
            Thread.sleep(i);
            g.drawLine(byte0, c1 - c, byte0 + c, c1 - c);
            Thread.sleep(i);
            g.drawLine(byte0 + c, c1 - c, byte0, c1);
            Thread.sleep(i);
            g.drawLine(byte0, c1, byte0 + c, c1);
        }
        catch(InterruptedException _ex) { }
    }

    public test()
    {}

viel spaß
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Erste Schritte Hilfe gesucht beim einstieg in Java und erste Aufgaben aus der Berufsschule Java Basics - Anfänger-Themen 9
L Kompletter Neuling: Hilfe beim ersten Java Versuchen Java Basics - Anfänger-Themen 12
A Hilfe beim Java-Einstieg Java Basics - Anfänger-Themen 3
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
A Hilfe beim Lesen von Pfaden und Systemvariablen Java Basics - Anfänger-Themen 3
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
pry bitte Hilfe beim Kreditrechner objektorientiert Java Basics - Anfänger-Themen 6
J Hilfe beim Label animieren Java Basics - Anfänger-Themen 1
J Hilfe beim verstehen Java Basics - Anfänger-Themen 3
L Anfänger braucht Hilfe - Stecke beim Lernen fest Java Basics - Anfänger-Themen 10
Bluedaishi Hilfe beim erklären dieser Methode Java Basics - Anfänger-Themen 5
J Hilfe beim Programmieren Java Basics - Anfänger-Themen 5
L Brauche Hilfe beim arbeiten mit Konstruktoren Java Basics - Anfänger-Themen 20
L Kleine Hilfe beim Schreiben eines Programmes benötigt :D Java Basics - Anfänger-Themen 40
W Hilfe beim Chat Programm Java Basics - Anfänger-Themen 14
S Erste Schritte Hilfe beim lernen von Programmieren Java Basics - Anfänger-Themen 2
der_Schokomuffin Hilfe gesucht beim Thema Objekte übergeben! Java Basics - Anfänger-Themen 2
J Hilfe beim Runden Java Basics - Anfänger-Themen 4
F (Eclipse) Beim importieren etwas fehlerhaft bitte um Hilfe :) Java Basics - Anfänger-Themen 3
S Compiler-Fehler Anfänger sucht Hilfe. Fehler beim Compilieren Java Basics - Anfänger-Themen 6
I Hilfe beim löschen von Buchstaben. Java Basics - Anfänger-Themen 1
I Hilfe beim löschen schon Buchstaben. Java Basics - Anfänger-Themen 4
J Hilfe beim "Verknüpfen" von zwei Klasse Java Basics - Anfänger-Themen 15
B Hilfe beim Kreisberechnungsprogramm Java Basics - Anfänger-Themen 6
D Hilfe beim übersetzen in der Klasse Throwable Java Basics - Anfänger-Themen 2
S Datentypen Hilfe beim Typecasting Java Basics - Anfänger-Themen 7
F Erste Schritte Hilfe beim Algorithmus finden Java Basics - Anfänger-Themen 8
R Brauche Hilfe beim fertigstellen eines Chat programms Java Basics - Anfänger-Themen 8
H Hilfe beim Programmablaufplan Java Basics - Anfänger-Themen 2
C Hilfe beim Zeichnen Java Basics - Anfänger-Themen 8
P Hilfe beim einlesen eines Textes Java Basics - Anfänger-Themen 11
B Hilfe beim Verständnis zu Generics Java Basics - Anfänger-Themen 7
D Hilfe beim SDF Datum Ausgabe Java Basics - Anfänger-Themen 20
S brauche hilfe beim fehler finden Java Basics - Anfänger-Themen 2
B Co2 rechner hilfe beim programmieren Java Basics - Anfänger-Themen 10
D Hilfe beim einlesen eines Strings mit Leerzeichen Java Basics - Anfänger-Themen 16
C Brauche dringend hilfe beim exception im code Java Basics - Anfänger-Themen 5
E Hilfe beim Einstieg Java Basics - Anfänger-Themen 46
T brauche HILFE beim Junit test:eek: Java Basics - Anfänger-Themen 11
P HILFE !!! erste aufgabe beim programmieren Java Basics - Anfänger-Themen 13
S Bisschen hilfe beim Sudoku Lösen benötigt Java Basics - Anfänger-Themen 7
V Hilfe beim implementieren von Iterator Java Basics - Anfänger-Themen 5
Y Brauche Hilfe beim Programm Java Basics - Anfänger-Themen 83
Developer_X Hilfe beim umbauen von Strings Java Basics - Anfänger-Themen 4
S Bitte um Hilfe beim unsortierten Binärbaum!! Java Basics - Anfänger-Themen 6
M Brauche Hilfe beim Verstehen vom Quellcode Java Basics - Anfänger-Themen 4
G Fehler beim Ausführen HILFE! Java Basics - Anfänger-Themen 12
V Brauche Hilfe beim Programmieren Java Basics - Anfänger-Themen 3
V Brauche Hilfe beim Programmieren Java Basics - Anfänger-Themen 9
A Hilfe beim "übersetzen" Java Basics - Anfänger-Themen 7
O Linux - Fehler beim kompilieren - HILFE Java Basics - Anfänger-Themen 4
S brauche hilfe beim dateien kopieren / bearbeiten Java Basics - Anfänger-Themen 3
E brauche hilfe beim KeyListener Java Basics - Anfänger-Themen 4
S Hilfe beim Einlesen Java Basics - Anfänger-Themen 6
K Hilfe beim starten eines Programms! Bitte helfen. Java Basics - Anfänger-Themen 8
D Hilfe beim Übergeben vom JTextfield Java Basics - Anfänger-Themen 2
E hilfe beim code Java Basics - Anfänger-Themen 3
G Hilfe zur einer Aufgabe: Datumsüberprüfung beim Gregorianis Java Basics - Anfänger-Themen 2
K Brauche Hilfe beim Programmieren eines Funktionsplotters Java Basics - Anfänger-Themen 3
B Hilfe beim Schüler-Project Java Basics - Anfänger-Themen 4
G Hilfe beim addieren(Anfänger) Java Basics - Anfänger-Themen 12
F Hilfe beim Zeichnen in JPanel Java Basics - Anfänger-Themen 2
F Hilfe beim erstellen von Jar files! Java Basics - Anfänger-Themen 2
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
H pdf stempel - Hilfe erbeten Java Basics - Anfänger-Themen 6
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
F RegEx Hilfe Java Basics - Anfänger-Themen 5
S Hilfe bei Endlosschleife Java Basics - Anfänger-Themen 2
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
U Ich bräuchte Hilfe Java Basics - Anfänger-Themen 1
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
Justin4687 Benötige Hilfe bei folgender Aufgabe Java Basics - Anfänger-Themen 2
aero043 Hilfe bei BlueJ Hausübung Java Basics - Anfänger-Themen 27
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
P Hilfe gesucht Java Basics - Anfänger-Themen 11
D Hilfe bei Calculator Test Java Basics - Anfänger-Themen 15
R Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
R Java Bücher hilfe Java Basics - Anfänger-Themen 9
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
I Scheduling: "Quartz" verwenden, Hilfe bei Umstellung Java Basics - Anfänger-Themen 3
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
Ekooekoo Hilfe spiel Java Basics - Anfänger-Themen 5
SpiritsHuner Hilfe!! Java Basics - Anfänger-Themen 16
Lacotto Java Kurs Aufgaben Hilfe Java Basics - Anfänger-Themen 14
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
Neuling47 Denkfehler? Hilfe Java Basics - Anfänger-Themen 11
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
L Hilfe bei RegEx Java Basics - Anfänger-Themen 4
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben