Spielerei: Frame rekursiv darstellen

Status
Nicht offen für weitere Antworten.
L

Leroy42

Gast
Hallo@all,

ich habe mal irgendwo ein (WinDoof) Programm gesehen, daß nichts weiter macht,
als "eine Kopie von sich selbst" darzustellen. Ich meine damit, daß sein Frameinhalt
das gesamte Desktop (ohne irgendwelche Icons) mit einer verkleinerten, proportional-
getreuen Kopie darstellt und bei Größenänderung/Verschiebung diese Kopie dynamisch
anpaßt.

Ich hoffe ich hab mich klar genug ausgedrückt ???:L

Ich will das gleiche, nur so zum Spaß, mal in Java implementieren. Allerdings mit
der Erweiterung, daß die "Kopie" ihrerseits eine verkleinerte Kopie beinhaltet,
usw., usw. solange die Bildschirmauflösung mitspielt.

Eine erste Version "Self.java" habe ich bereits fertiggestellt (Stichworte:
setDynamicLayout(), Desktopgröße ermitteln und Framegröße in Relation dazu
berechnen). Diese Version ist allerdings "festverdrahtet" in der Hinsicht, daß
sie nicht rekursiv arbeitet sondern nur genau eine Kopie darstellt.

Kann mir jemand Hinweise geben, wie ich dies rekursiv am elegantesten
lösen kann?

Hinweis: Dies ist keine Hausaufgabe oder dergleichen -- ich will das nur
zum Spaß machen. Ich brauche auch keinen fertigen Code sondern nur einen
Denkanstoß wie das zu bewerkstelligen ist.

Danke im Voraus
Leroy42
 

Timmah

Bekanntes Mitglied
Vielleicht solltest du einfach mal deinen Code posten; dann kann man daran besser arbeiten.
 
L

Leroy 42

Gast
Timmah hat gesagt.:
Vielleicht solltest du einfach mal deinen Code posten; dann kann man daran besser arbeiten.

Ich kann von hier aus leider nicht auf meine Sourcen zugreifen, darum habe ich es
noch mal neu geschrieben. Merkwürdigerweise feuert XP (Java 1.5) kein componentMoved event
bei Verschiebung des Frames. Zuhause unter Windows 2000 (Java 1.4) funktioniert der Code ???:L

Oder stehe ich gerade auf'm Schlauch (von irgend jemanden :D )

Na egal; hat ja nichts mit der Hauptfrage zu tun, wie ich am elegantesten
die Selbstdarstellung rekursiv erweitern kann.

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

public class Self extends JFrame {
	SelfP self = new SelfP();

	public Self() {
		super("Self");
		getContentPane().add(self);
		self.addComponentListener(new ComponentAdapter() {
			public void componentMoved(ComponentEvent e) {changed();}
			public void componentResized(ComponentEvent e) {changed();}
		});
		self.setBackground(Color.lightGray);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setSize(400, 300);
		setVisible(true);
		changed();
	}

	public void changed() {
		self.changed(getBounds());
	}

	public static void main(String[] args) {
		Toolkit.getDefaultToolkit().setDynamicLayout(true);
		new Self();
	}
}

class SelfP extends JPanel {
	double x,y,w,h;

	public void changed(Rectangle r) {
		x = r.getX();
		y = r.getY();
		w = r.getWidth();
		h = r.getHeight();
		repaint();
	}

	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
		g.setColor(Color.blue);
		g.fillRect(
			(int) (x*w/screen.getWidth()),
			(int) (y*w/screen.getWidth()),
			(int) (w*w/screen.getWidth()),
			(int) (h*h/screen.getHeight())
		);
	}
}

Leroy42
 

Campino

Top Contributor
was hälst du davon, einfach einen Screenshot zu machen und darzustellen? der erste hat den Effekt noch nicht, aber ab dem zweiten wird's immer besser...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Mein Frame friert ein beim Uploaden Allgemeine Java-Themen 4
G Input Frame Allgemeine Java-Themen 6
Y Wie kann ich ein erstelltes JPanel meinem Frame hinzufügen? Allgemeine Java-Themen 1
MaxG. Swing Frame schließen Allgemeine Java-Themen 9
X Controller pro Frame? Allgemeine Java-Themen 8
A BlueJ Java Frame Java Editor --> Bluej / String title Allgemeine Java-Themen 8
S Bild in Frame Allgemeine Java-Themen 0
T Code durch eigenes Frame pausieren (ähnlich JDialog) Allgemeine Java-Themen 4
D Player Objekt - Frame über Server anzeigen lassen. Allgemeine Java-Themen 3
R Nullpunkt im Frame Allgemeine Java-Themen 4
J Swing Frame schließt ganzes Programm(Jasperreport) Allgemeine Java-Themen 6
J Runtime.exec setzt Fokus auf Frame Allgemeine Java-Themen 2
N Protocol Frame/Applet Allgemeine Java-Themen 4
A Frame nur Anwendungsweit in Vordergrund Allgemeine Java-Themen 2
Z Mit ActionListener in anderem Frame lauschen? Allgemeine Java-Themen 3
M Nochmal I-Frame zu Image Allgemeine Java-Themen 4
borobudur Find a AWT frame in SWT Allgemeine Java-Themen 4
S Von Frame zu Frame Allgemeine Java-Themen 7
D Kreis Rundes Frame Allgemeine Java-Themen 16
E "runder" Frame Allgemeine Java-Themen 9
G Kompletten Frame mit allen Objekten resizen Allgemeine Java-Themen 10
ARadauer mit keylistener hören auch wenn frame nicht den focus hat Allgemeine Java-Themen 2
G HTML-Seite im Frame Anzeige? Allgemeine Java-Themen 3
G Kontrolllampe im Frame Allgemeine Java-Themen 4
C Tastatureingabe in einem Frame abfragen Allgemeine Java-Themen 2
L Objekt in einem Frame wird im anderen benötigt Allgemeine Java-Themen 5
A mein Frame wird nicht schnell genung aktualisiert Allgemeine Java-Themen 7
G Fenster/Frame schließen Allgemeine Java-Themen 16
R Window statt Frame Allgemeine Java-Themen 6
R KeyListener ohne Frame und Applet Allgemeine Java-Themen 7
B Frame schließt sich aber VM bleibt am Leben Allgemeine Java-Themen 3
J Exception-Frame Allgemeine Java-Themen 2
M Wie könnte man den Codeschnipsel rekursiv darstellen? Allgemeine Java-Themen 1
M Endrekursiv vs Rekursiv Allgemeine Java-Themen 4
Aboya Kugel mit Hilfe von Dreiecken rekursiv zeichnen Allgemeine Java-Themen 2
Aboya Char Array rekursiv vergleichen Allgemeine Java-Themen 15
H Heron Verfahren Tail-rekursiv lösen Allgemeine Java-Themen 7
Kingamadeus2000 Alle mehrfach vorkommenden Buchstaben rekursiv aus einem String entfernen. Allgemeine Java-Themen 6
I Diskussion zu: Tribonacci Folge Rekursiv Allgemeine Java-Themen 15
R Warum ist die Methode unendlich oft rekursiv? Allgemeine Java-Themen 5
D 2,3-Baum rekursiv erstellen Allgemeine Java-Themen 20
denny86 NetBeans Ordnernamen rekursiv auslesen und in Variable verarbeiten Allgemeine Java-Themen 38
B Primfaktorzerlegung Rekursiv Allgemeine Java-Themen 2
B Primzahltest rekursiv Allgemeine Java-Themen 15
S Verkettete (Teil)Liste sortieren ( rekursiv bis n) Allgemeine Java-Themen 2
L Alle möglichen Additionen (Rekursiv) Allgemeine Java-Themen 3
N Rekursiv Höhe Baum Allgemeine Java-Themen 3
H Vektor rekursiv erzeugen Allgemeine Java-Themen 2
J Breitensuche in Graph rekursiv Allgemeine Java-Themen 2
E ordner rekursiv durchsuchen Allgemeine Java-Themen 6
E Ordner rekursiv kopieren Allgemeine Java-Themen 8
R synchronized methode rekursiv aufrufen Allgemeine Java-Themen 5
S MergeSort iterativ und rekursiv? Allgemeine Java-Themen 8
G Array rekursiv durchlaufen Allgemeine Java-Themen 2
S JAVA JTree rekursiv umschreiben Allgemeine Java-Themen 5
leifg Rekursiv mit Threads Programmieren Allgemeine Java-Themen 2
sparrow Ant build-files rekursiv aus ant aufrufen Allgemeine Java-Themen 3
K zinsen rekursiv/iterativ Allgemeine Java-Themen 17
K Verzeichnis rekursiv aus JAR-Datei extrahieren Allgemeine Java-Themen 6
F Filelisting iterativ, nicht rekursiv Allgemeine Java-Themen 7
M Rekursiv Verzeichnisse ansehen und auf Muster matchen Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben