Wie Bilder nacheinander anstatt aufeinmal rastern?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

mein Code liest sehr viele JPG-Bilder ein, und fügt sie aneinander an.
Das Problem: Das Gesamtbild wird aber erst angezeigt, wenn meine hier aufgeführte Methode
paintComponent komplett ausgeführt wurde.
Wie können die Bilder aber einzeln nacheinander rasterisiert werden? (Also dass bei jedem Schleifendurchlauf -im unten aufgeführten Code- jedes Einzelbild sofort gezeichnet wird. Und nicht erst alle einzelnen Bild am Ende zeichnen)

Hier der KernCode zumBilderladen und Anzeigen:

Code:
class BildLeinwand extends JPanel {
	public void paintComponent(Graphics g) {
		for (int i=0; i<10; i++) {
//pfad in Wirklichkeit natürlich nicht konstant, da bei jedem Schleifendurchlauf ein anderes Bild geladen wird
			meinBild = ImageIO.read(new File(pfad)); 
//int1, int2, int3, int4 ändern sich in Wirklihckeit bei jedem Schleifendurchlauf
			g.drawImage(meinBild,int1,int2,int3,int4,this);
		}
	}
}
 
S

SlaterB

Gast
Programmlogik gehört in einen externen Thread,
nicht in eine paintCompent();

for (int i=0; i<10; i++) {
// lade Bild i
// repaint (bisherige Bilder);
}
 
G

Guest

Gast
Danke, hätte nicht erwartet dass eine Auslagerung des Codes von der PaintComponent das Problem lösen würde. :)

Das Problem ist jetzt aber, wenn das Fenster über den Monitorrand gerät, verliert es den Inhalt beim Fensterzurückziehen, wie kann das gelöst werden?

Und noch nebenbei, je nachdem welche Taste ich drücke werden unterschiedliche Bilder geladen. Ich möchte aber dass er sofort auf meine Tasteneingabe reagiert, und nicht noch innerhalb der Schleife zuendezeichnet. Muss ich hierzu ein Thread verwenden, oder gibts ne einfacher Lösung?
Wie könnte der Thread konkret auslesen welche Taste ich gedrückt habe? Oder wärs stattdessen so einfacher:
Mein Tastenlistener setzt je nach gedrückter Variable entsprechende Werte, diese Werte schaut sich der Thread andauernd an und reagiert dann entsprechend?

Weiss nicht, ob ich die Programmlogik nach deinen Vorschlag optimal ausgelagert habe, habs jedenfalls so realisiert:
Jetzt im Mauslistener statt "MeinFenster.repaint()" meine Zeichenmethode zeichnen() verwendet:
(Musste noch die Zeile getGraphics() verwenden, falls es eleganter geht, bitte schreiben).

Code:
void zeichnen () {
    Graphics g = getGraphics();
    for (int i=0; i<10; i++) { 
        meinBild = ImageIO.read(new File(pfad)); 
        g.drawImage(meinBild,int1,int2,int3,int4,this); 
    }
}
 
G

Guest

Gast
Das andere Problem ist jetzt, wenn ich ein Java-Fenster aufpoppen lasse, dann ist das darunterliegende zusammengesetzte Bild an dieser Stelle gelöscht. Wie kann das Problem gelöst werden?
 
S

SlaterB

Gast
getGraphics() ist schlimm und ich mache es einfach mal für alle Probleme verantwortlich ;)

wenn du einfach nur zeichnen() aufrufst ist das kein Thread,
schaue dir vielleicht entsprechende Kapitel in Lehrbüchern an,
aber ohne Kenntnisse dazu wirds schwer..
 
G

Guest

Gast
getGraphics() ist schlimm und ich mache es einfach mal für alle Probleme verantwortlich .
wenn du einfach nur zeichnen() aufrufst ist das kein Thread,

Wie würde der Thread eine g-Instanz herkriegen? Im Thread müsste ich doch dann auch getGraphics() verwenden um zeichnen zu können, oder wie wird es gelöst?

Wenn jemand ein PseudoCode Grundgerüst für mein Problem inklusive PseudoThread parat hätte, dann bitte schreiben. (Ich meine: Wie sollte die zeichnen-Methode und der Thread in Pseudocode aussehen? Ich denk hierfür könnten etwa 15 Zeilen reichen)
 
S

SlaterB

Gast
wie ich geschrieben haben:
egal ob Thread oder sonstwer, eine GUI wird nur auf eine einzige Weise gezeichnet:
repaint();

nicht mehr und nicht weniger,
dann wird INTERN paintComponent() aufgerufen

steht auch in einem entsprechenden Tutorial, genau wie man Threads-Handling nur nachlesen muss
(ist natürlich jeweils eine Woche Arbeit..)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Bilder auf JPanel (im JScrollPane) nacheinander laden AWT, Swing, JavaFX & SWT 0
K Bilder nacheinander einfügen AWT, Swing, JavaFX & SWT 3
C zwei Bilder nacheinander anzeigen AWT, Swing, JavaFX & SWT 2
MiMa Fonts, Icons, Bilder in JavaFX Anwendung AWT, Swing, JavaFX & SWT 5
F Bilder zu ausführbarer Jar-Datei hinzufügen AWT, Swing, JavaFX & SWT 5
G JPanel per Drag and Drop JButtons und Bilder ablegen AWT, Swing, JavaFX & SWT 1
G JPanel mit JButtons und Bilder AWT, Swing, JavaFX & SWT 5
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
S AffineTranformation Bilder verschwinden von Anzeige bei Pan, Zoom AWT, Swing, JavaFX & SWT 6
G Bilder in javafx Project AWT, Swing, JavaFX & SWT 11
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
N eclipse Java, bilder benutzten Funktioniert nicht AWT, Swing, JavaFX & SWT 6
Kirby.exe Bilder in GUI einfügen AWT, Swing, JavaFX & SWT 8
T Bilder bei einem JFrame einfügen AWT, Swing, JavaFX & SWT 4
K JLabel mit Bilder im nicht initialisierten JPanel hinzufügen AWT, Swing, JavaFX & SWT 5
L Bilder werden in exportierter Datei nicht geladen AWT, Swing, JavaFX & SWT 6
C Bilder so einbinden, dass sie sich ändern AWT, Swing, JavaFX & SWT 6
J Bilder aus dem SceneBuilder werden in der Jar nicht dargestellt AWT, Swing, JavaFX & SWT 4
TheWhiteShadow JavaFX Bilder werden ungewollt Skaliert AWT, Swing, JavaFX & SWT 1
B JavaFX Bilder in einem Gewissen bereich halten AWT, Swing, JavaFX & SWT 1
J Bilder proportional verkleiner AWT, Swing, JavaFX & SWT 12
E Bilder skalieren AWT, Swing, JavaFX & SWT 4
DaCrazyJavaExpert Swing Bilder überlagern AWT, Swing, JavaFX & SWT 19
A Bilder als Hintergrund AWT, Swing, JavaFX & SWT 2
@SupressWarnings() JavaFX Bilder in executable jar laden AWT, Swing, JavaFX & SWT 5
Sugan JavaFX Bilder drucken AWT, Swing, JavaFX & SWT 0
K JPanel Bilder bei Windows nicht darstellbar AWT, Swing, JavaFX & SWT 6
Sugan Java FX Verzeichnisüberwachung -> Bilder auf GUI anzeigen AWT, Swing, JavaFX & SWT 4
E AWT Bilder als "Array" abspeichern. AWT, Swing, JavaFX & SWT 4
MrSnake Bilder aus Unterordner einfügen AWT, Swing, JavaFX & SWT 2
I 2D-Grafik Bilder Eingefügt, button jetzt im Hintergrund AWT, Swing, JavaFX & SWT 2
C SWT Treeview mit Bilder im Label verändert Expanded Icon AWT, Swing, JavaFX & SWT 1
M Swing JTextPane, Bilder und Text-flow AWT, Swing, JavaFX & SWT 2
A Mit dem Scene Builder eine Collage erstellen (Bilder beziehen aus Flickr) AWT, Swing, JavaFX & SWT 1
thet1983 JTable Bilder AWT, Swing, JavaFX & SWT 6
GenerationLost Bilder an bestimmten Platz einfügen/Objekte visualisieren AWT, Swing, JavaFX & SWT 1
F Bilder in jFrame einfügen AWT, Swing, JavaFX & SWT 3
J Bilder als Variable an einem Objekt speichern AWT, Swing, JavaFX & SWT 3
I Swing Bilder werden nach Export nicht angezeigt AWT, Swing, JavaFX & SWT 1
D 2D-Grafik Bilder anzeigen AWT, Swing, JavaFX & SWT 4
vodkaz JFrame,Bilder und Zeitverzögerung AWT, Swing, JavaFX & SWT 2
A Swing Bilder werden nicht angezeigt AWT, Swing, JavaFX & SWT 3
I SWT Bilder, bzw. ein einzelnes Bild AWT, Swing, JavaFX & SWT 6
M Bilder zeichnen, NullPointer Exception AWT, Swing, JavaFX & SWT 3
Xbody 2D-Grafik JavaFX Bilder transformieren AWT, Swing, JavaFX & SWT 2
C 2D-Grafik Steganographie - Verschlüsselung von Dateien in Bildern - Bilder zeigen schwarze Rechtecke AWT, Swing, JavaFX & SWT 13
P Durch Bilder Scrollen AWT, Swing, JavaFX & SWT 2
F Bilder werden nicht in's Array geladen AWT, Swing, JavaFX & SWT 4
K Bilder übereinanderlegen AWT, Swing, JavaFX & SWT 11
windl Querstreifen beim Bilder malen und anpassen an neue CPU AWT, Swing, JavaFX & SWT 12
V Fertige Komponente zum Anzeigen mehrerer Bilder AWT, Swing, JavaFX & SWT 5
Karuka 2D-Grafik Bilder in GridLayout einfügen AWT, Swing, JavaFX & SWT 7
J Bilder in ausführbare jar einbinden AWT, Swing, JavaFX & SWT 7
J Swing Bilder anzeigen in Gridlayout AWT, Swing, JavaFX & SWT 11
H 2D-Grafik Bilder laden ist nicht zuverlässig AWT, Swing, JavaFX & SWT 3
F Bilder ineinander kopieren AWT, Swing, JavaFX & SWT 3
P Bilder verkleinern AWT, Swing, JavaFX & SWT 2
C SWT Mehrere Bilder in GUI laden AWT, Swing, JavaFX & SWT 5
Furtano AWT Skalierung mehrerer Bilder / Histogramme im Fenster AWT, Swing, JavaFX & SWT 4
Furtano AWT mehrere Bilder in einen Frame zeichnen + Layout Manager AWT, Swing, JavaFX & SWT 10
T 2D-Grafik Statisches Hintergrundbild, dynamische Bilder drüber AWT, Swing, JavaFX & SWT 2
C Zwei Bilder übereinander legen AWT, Swing, JavaFX & SWT 1
L [SWT] Daten und Bilder drucken AWT, Swing, JavaFX & SWT 2
S Flickr Bilder in Gui Oberfläche AWT, Swing, JavaFX & SWT 21
L Bilder im JPanel als Hintergrund - Swing AWT, Swing, JavaFX & SWT 2
H Bilder auf Buttons per Klick tauschen ( Puzzle ) AWT, Swing, JavaFX & SWT 8
H Bilder in Array zufällig anordnen AWT, Swing, JavaFX & SWT 4
P 2D-Grafik Viele Bilder zu einem Video AWT, Swing, JavaFX & SWT 3
J Vergleicher zweier Bilder AWT, Swing, JavaFX & SWT 2
L Swing Bilder über andere Bilder laden AWT, Swing, JavaFX & SWT 3
J Bilder überlappen AWT, Swing, JavaFX & SWT 18
P Bilder werden nach Änderung nicht angezeigt AWT, Swing, JavaFX & SWT 15
3 2D-Grafik Rechtecke auf Bilder legen und auslesen AWT, Swing, JavaFX & SWT 4
M Mehrere Bilder auf einmal anzeigen AWT, Swing, JavaFX & SWT 9
P Swing html mit bilder drin AWT, Swing, JavaFX & SWT 12
F Nicht alle Bilder werden angezeigt AWT, Swing, JavaFX & SWT 2
E Bilder auf JFrame AWT, Swing, JavaFX & SWT 7
R Bilder über URL einfügen AWT, Swing, JavaFX & SWT 4
F Applet zeigt Bilder nicht an AWT, Swing, JavaFX & SWT 5
M FileChooser Bilder auswählen AWT, Swing, JavaFX & SWT 8
G Swing Bilder zeichnen AWT, Swing, JavaFX & SWT 28
L Swing Bilder im Icons-Ordner AWT, Swing, JavaFX & SWT 4
U Bilder in Jar werden nicht gefunden AWT, Swing, JavaFX & SWT 5
S SWT Canvas: Flackernde Bilder AWT, Swing, JavaFX & SWT 3
A Bilder vergleichen AWT, Swing, JavaFX & SWT 4
E Swing JTextPane Inhalt(Text und Bilder) als HTML text bekommen AWT, Swing, JavaFX & SWT 3
E AWT Bilder und Java AWT, Swing, JavaFX & SWT 11
P Bilder einfügen AWT, Swing, JavaFX & SWT 4
D Swing JEditorPane mit HTML aber ohne Bilder AWT, Swing, JavaFX & SWT 3
S Swing Kleine Bilder in Panel einfügen AWT, Swing, JavaFX & SWT 13
A AWT Bilder als Link verwenden? AWT, Swing, JavaFX & SWT 11
T SWT Wie Bilder aus JAR-Dateien einbinden? AWT, Swing, JavaFX & SWT 12
S Bilder aus der Google Book Search API auslesen AWT, Swing, JavaFX & SWT 3
J Bilder in JScrollPane zentrieren AWT, Swing, JavaFX & SWT 5
M Bilder in einem Textfeld darstellen AWT, Swing, JavaFX & SWT 2
N Bilder aus Infos generieren lassen. Welches Framework? AWT, Swing, JavaFX & SWT 8
A SWT Bilder resizen AWT, Swing, JavaFX & SWT 9
A Swing Bilder in JFrame einfügen AWT, Swing, JavaFX & SWT 2
Cloud Einige Bilder werden nicht geladen AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen

Neue Themen


Oben