Wie kann ich Images schneller laden?

Status
Nicht offen für weitere Antworten.
A

anfänger

Gast
Hallo,
ich habe da mal zwei Fragen.
erstens:
in meinem JPanel zeichne ich 5x6 Images, die zusammen ein großes Bild ergeben sollen. Wie kann ich diese Bilder schneller laden?
und die zweite frage ist: Wie kann ich scrollen ohne dass das Bild so ruckelt und den Effekt von Sprüngen hat? Ich hab die Geschwindigkeit vom Scrollen mit

// Scrollgeschwindigkeit wird eingestellt
scrollpane.getHorizontalScrollBar().setUnitIncrement(50);
scrollpane.getVerticalScrollBar().setUnitIncrement(50);

auf 50px eingestellt, da ich ein recht großes JPanel habe (ca. 10000px mal 5000px).
Da ich bei dieser größe nicht genug platz im speicher habe, mach ich eine abfrage, welcher bereich gerade sichtbar ist und zeichne die Images nur an dieser Stelle.

Schon mal Danke im vorraus.
 

dotlens

Top Contributor
Images werden standartmässig erst geladen wenn sie angezeigt werden. wenn du jedoch imageIcons daraus machst werden sie schon beim erstellen geladen....
 
A

anfänger

Gast
dotlens hat gesagt.:
Images werden standartmässig erst geladen wenn sie angezeigt werden. wenn du jedoch imageIcons daraus machst werden sie schon beim erstellen geladen....

aber haben images nicht immer eine festgelegte größe von ~10px*10px? Weil das sind doch die, die man in die titelleiste eines Fensters setzt.

gruß
 
A

anfänger

Gast
das Image wird im Übrigen nicht aus einer Textdatei erstellt, sondern aus einem Array mit Farbwerten

Image img = Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(256,256,DatenAuswerten.image_data[x],0,256));
 
G

Guest

Gast
dotlens hat gesagt.:
das sind icons. bei images und imageIcons kannst du die grösse wählen....

okay, ich habe jetzt aus den Images ein ImageIcon erstellt, aber wie stelle ich die auf meinem JPanel dar?
 

dotlens

Top Contributor
imageIcons kannst du beispielsweise in Labels darstellen:

Code:
JLabel lbl = new JLabel(deinImageIcon);

wenn du das ganze mit Images lösen willst kannst du acuh den MediaTracker benutzen. ist jedoch komplizierter....
 
G

Guest

Gast
okay, dass mit den ImageIcons klappt, aber leider nur solange wie ich keine keine weiteren Images auf die Icons male. Dann bekomme ich die Fehlermeldung
java.lang.OutOfMemoryError

Die weiteren Images stellen kleine Einheiten dar und ich muss zeigen, wo sie sich befinden.

Weiß jemand rat? denn das mit den ImageIcons war ein guter rat, den das Laden geht schneller
 
G

Guest

Gast
Anonymous hat gesagt.:
okay, dass mit den ImageIcons klappt, aber leider nur solange wie ich keine keine weiteren Images auf die Icons male. Dann bekomme ich die Fehlermeldung
java.lang.OutOfMemoryError

Der Fehler kommt auch schon, wenn ich keine weiteren Images darstelle, sondern nur versuche zu scrollen.
Hilfe!!
 
G

Guest

Gast
dotlens hat gesagt.:
zeig bitte mal deinen code...

der Fehler ist weg. Hab die ImageIcons alle auf extra Labels gesetzt und das war wohl zu viel für ihn. Aber wie setzt man die größe bei ImageIcons?

Habe jetzt versucht die Bewegungen als ImageIcons zu zeichnen, aber die will er mir nicht zeichnen.

Code:
public void zeichneIcon(Graphics g)
{
    for(int i = 0; i< Karte.zaehler; i++)
    {
        Image img = null;
        ImageIcon icon = new ImageIcon();
			
        switch(Karte.koordinaten[i][4])
        {
	case 1: img = Toolkit.getDefaultToolkit().getImage("."+sep+"expBitmapsGif"
			+sep+"units"+sep+"basic"+sep+"unit_"+tmp+".gif");
	            break;
	case 2: img = Toolkit.getDefaultToolkit().getImage("."+sep+"expBitmapsGif"
			+sep+"platoons"+sep+"basic"+sep+"plat_"+tmp+".gif");
	            break;
	case 3: img = Toolkit.getDefaultToolkit().getImage("."+sep+"expBitmapsGif"
			+sep+"companies"+sep+"basic"+sep+"comp_"+tmp+".gif");
                            break;
	case 4: img = Toolkit.getDefaultToolkit().getImage("."+sep+"expBitmapsGif"
			+sep+"bataillons"+sep+"basic"+sep+"batt_"+tmp+".gif");
	            break;
	 case 5: img = Toolkit.getDefaultToolkit().getImage("."+sep+"expBitmapsGif"
	 		+sep+"brigades"+sep+"basic"+sep+"brig_"+tmp+".gif");
	             break;
        }
        icon.setImage(img);
        icon.paintIcon(this,g, Karte.zeichnekoords[i][0], Karte.zeichnekoords[i][1]);
}
 

dotlens

Top Contributor
ich denke er übernimmt die grösse die das Image hat.

sorry verstehe dein Problem nicht, was bitte sind "Bewegungen als ImageIcon"???
 
G

Guest

Gast
dotlens hat gesagt.:
ich denke er übernimmt die grösse die das Image hat.

sorry verstehe dein Problem nicht, was bitte sind "Bewegungen als ImageIcon"???

ich habe eine Landkarte, die ich jetzt als ImageIcon dargestellt habe und das läuft auch prima.
Auf dieser Karte bewegen sich einzelne Gruppen. Jeder gruppe ist ein eigenes Icon zu geordnet. Jetzt wollte ich die auch als ImageIcons zeichnen (Code), aber die zeichnet er mir nicht. ich weiß, dass die Pfadangabe stimmt, da ich vorher die Icons als Images über die Karte hab wandern lassen. Jetzt aber nix mehr.

Das ganze ist eigentlich ein replay einer bodenübung.
 

dotlens

Top Contributor
Dann werden sie vermutlich von den ander ImageIcons verdeckt.

kann gut sein, dass er vorher die images angezeigt hat, da sie von AWT sind, und Swing (ImageIcon) überdecken...

versuch mal mit der Reihenfolge in der du addest zu hantieren, glaube die ImageIcons die du zuletzt addest werden zuoberst angezeigt. bin mir aber nicht sicher....
 
B

Beni

Gast
Vielleicht kann dir auch ImageIO helfen, da laufen nicht noch irgendwelche komischen Sachen im Hintergrund (wenn du "read" aufrufst wird das Bild augenblicklich gelesen, da kannst du auch was mit Multithreading basteln...).
 
G

Guest

Gast
Beni hat gesagt.:
Vielleicht kann dir auch ImageIO helfen,..., da kannst du auch was mit Multithreading basteln...).

Ich hab mir mal die Api für ImageIO angesehen, verstehen, aber nicht, wie ich das Image dann auf meinem JPanel ausgeben kann. Denn steht nur was von OutputStream, FileOutputStream und ImageOutputStream.
 

dotlens

Top Contributor
mit dem MediaTracker kannst du sie laden, bevor du sie anzeigst. das ist das gleiche, wie wenn du mit ImageIcon arbeitest. der Vorteil ist jedoch, dass du sie nicht auf labels setzen musst....
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Images laden nicht AWT, Swing, JavaFX & SWT 14
T JavaFX Label mit mehreren Images AWT, Swing, JavaFX & SWT 11
J Images drehen AWT, Swing, JavaFX & SWT 5
F Kollision zweier Images AWT, Swing, JavaFX & SWT 3
V JavaFX Teile eines Images Transparent machen AWT, Swing, JavaFX & SWT 4
B 2D-Grafik Shade eines Images AWT, Swing, JavaFX & SWT 1
D Applet Auslesen von Images aus Ressourcen AWT, Swing, JavaFX & SWT 29
B 2D-Grafik Dynamisches Erstellen von Images und deren Animation AWT, Swing, JavaFX & SWT 4
S Images färben und transparenz ändern AWT, Swing, JavaFX & SWT 4
I Größe eines rotierten Images AWT, Swing, JavaFX & SWT 3
C SWT probleme beim einbinden von Images AWT, Swing, JavaFX & SWT 2
M SWT Images bei Toggle Button wechseln AWT, Swing, JavaFX & SWT 3
reibi SWT Teilbereich eines Images markieren AWT, Swing, JavaFX & SWT 7
Developer_X Uneditable JTable mit Images AWT, Swing, JavaFX & SWT 2
G AWT Images aus Imagearray an die Maus pappen und bewegen AWT, Swing, JavaFX & SWT 4
N Java Choice Bilderausgabe - images - - image - AWT, Swing, JavaFX & SWT 2
Luk10 AWT Casten von images AWT, Swing, JavaFX & SWT 11
S SWT Images zu Byte Arrays AWT, Swing, JavaFX & SWT 5
G Images in GUI anzeigen lassen AWT, Swing, JavaFX & SWT 2
Fadi Images in JAR Datei laden? AWT, Swing, JavaFX & SWT 5
T 2 Images (jpg) zu einem zusammenfügen - nebeneinander AWT, Swing, JavaFX & SWT 3
S java.net.MalformedURLException: no protocol:/images/Home.jpg AWT, Swing, JavaFX & SWT 14
S [SWT] Toogle Button 2 verschiedenen images? AWT, Swing, JavaFX & SWT 6
S aktuelle möglichkeit images zu laden? AWT, Swing, JavaFX & SWT 2
T Aus farbigen images (JPG) graustufen images erstellen AWT, Swing, JavaFX & SWT 8
R Images anpassen AWT, Swing, JavaFX & SWT 4
H 2 Images positionieren AWT, Swing, JavaFX & SWT 9
orenishii mehrseitig Images anzeigen und drucken SimpleBook.java AWT, Swing, JavaFX & SWT 5
S Images in JAR AWT, Swing, JavaFX & SWT 6
I SWT - Images wiederbenutzen AWT, Swing, JavaFX & SWT 3
V Bilder -> SWT Images in einer Datei serialisieren und des AWT, Swing, JavaFX & SWT 9
G Warum gehen meine Icons/Images nicht weg? AWT, Swing, JavaFX & SWT 2
M Images werden nicht scharf AWT, Swing, JavaFX & SWT 3
J Grafik (Kreis) schneller bewegen? AWT, Swing, JavaFX & SWT 6
E Warum ist offscreen (mit Image) schneller? AWT, Swing, JavaFX & SWT 11
hdi Swing Wird Swing schneller? AWT, Swing, JavaFX & SWT 40
B kein MouseEvent bei zu schneller Bewegung der Maus AWT, Swing, JavaFX & SWT 7
N JScrollPane schneller scrollen AWT, Swing, JavaFX & SWT 3
thor_norsk Icons laden nicht in GUI AWT, Swing, JavaFX & SWT 15
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
K JavaFX Bildergalerie aus Image Ordner laden AWT, Swing, JavaFX & SWT 3
L JavaFX .fxml laden klappt nicht AWT, Swing, JavaFX & SWT 16
DeBoiJoshua 2D-Grafik Gif Animation will nicht laden AWT, Swing, JavaFX & SWT 1
R Grafik per JButton laden und austauschen lassen AWT, Swing, JavaFX & SWT 14
B Swing Sudoku: Laden / Speichern von Zahlen aus/in mehrere JTextFields aus/in eine(r) Textdatei AWT, Swing, JavaFX & SWT 9
A Swing Datei lässt sich zwar speichern, aber nicht laden (Inhalt im JTextField anzeigen) AWT, Swing, JavaFX & SWT 18
C Swing F5 Taste neu laden auf ganzen Frame AWT, Swing, JavaFX & SWT 9
N Swing Image aus Web laden und in Icon umwandeln AWT, Swing, JavaFX & SWT 4
J Bild von anderer Klasse will nicht laden AWT, Swing, JavaFX & SWT 1
F JavaFX PNG aus einem resource Ordner laden AWT, Swing, JavaFX & SWT 8
L JavaFX LoadException beim Laden von JavaFX Anwendung AWT, Swing, JavaFX & SWT 6
F JButtons neu laden AWT, Swing, JavaFX & SWT 4
M AWT Laden von Sprites AWT, Swing, JavaFX & SWT 3
Thallius JTable dynamisch laden? AWT, Swing, JavaFX & SWT 2
@SupressWarnings() JavaFX Bilder in executable jar laden AWT, Swing, JavaFX & SWT 5
S JavaFX Laden des Inhalts AWT, Swing, JavaFX & SWT 1
L JavaFX Verzögerung beim Laden von Daten AWT, Swing, JavaFX & SWT 6
I Scene Builder kann .fxml nicht mehr laden AWT, Swing, JavaFX & SWT 3
S NullPointer Exception beim Laden von Bildern AWT, Swing, JavaFX & SWT 11
X Java Fxml laden AWT, Swing, JavaFX & SWT 4
G Properties automatisch laden AWT, Swing, JavaFX & SWT 10
D JavaFX Gesetzte Variable in einem Controller im Controller laden AWT, Swing, JavaFX & SWT 1
L Graphik nach 100 ms neu laden AWT, Swing, JavaFX & SWT 1
Z JAVAFX Stage über Controller weitergeben um css-file zu laden AWT, Swing, JavaFX & SWT 4
S JavaFX Fenstergrösse automatisch Speichern und Laden AWT, Swing, JavaFX & SWT 4
M Datenbanksätze in ToolTip laden AWT, Swing, JavaFX & SWT 4
A JPanel Bild laden (Porblem mit Dateipfad) AWT, Swing, JavaFX & SWT 2
I Zufallsbilder laden AWT, Swing, JavaFX & SWT 2
D Swing Bei Button Click neues Panel laden AWT, Swing, JavaFX & SWT 3
C Image laden und Speichern - Image wird auf JPanel nicht angezeigt AWT, Swing, JavaFX & SWT 4
X JFrame erst nach dem Laden sichtbar stellen AWT, Swing, JavaFX & SWT 8
N FXML Dokument laden AWT, Swing, JavaFX & SWT 1
J Bilder auf JPanel (im JScrollPane) nacheinander laden AWT, Swing, JavaFX & SWT 0
B Ressourcen laden beim Ausführen der .jar nicht schnell genug AWT, Swing, JavaFX & SWT 2
V JavaFX - fxml-Datei laden (neben CSS) AWT, Swing, JavaFX & SWT 2
T AWT Bild laden und transparent zeichnen AWT, Swing, JavaFX & SWT 2
J Swing Bild laden, Kreise drin malen, Schreiben AWT, Swing, JavaFX & SWT 2
M Swing Elemente im Dialog neu "laden". AWT, Swing, JavaFX & SWT 6
K JLabel nachträglich laden AWT, Swing, JavaFX & SWT 6
T Modell als XML Speichern / Laden AWT, Swing, JavaFX & SWT 9
B Hintergrund laden AWT, Swing, JavaFX & SWT 3
V Laden einer Bitmap / Eclipse-Problem? AWT, Swing, JavaFX & SWT 4
S Font laden, Wort zeichnen und animieren..? AWT, Swing, JavaFX & SWT 2
G Objekte in und aus einer JTable laden AWT, Swing, JavaFX & SWT 5
H 2D-Grafik Bilder laden ist nicht zuverlässig AWT, Swing, JavaFX & SWT 3
V Persistentes Objekt laden Progressbar AWT, Swing, JavaFX & SWT 7
Luk10 Fragen zum Laden von Fonts AWT, Swing, JavaFX & SWT 4
B Swing Laden von serialisierten Objekten (invalid type code AC)) AWT, Swing, JavaFX & SWT 3
N Swing BufferedImage neu laden AWT, Swing, JavaFX & SWT 10
C SWT Mehrere Bilder in GUI laden AWT, Swing, JavaFX & SWT 5
T Swing Laden eines Icons auf JButton liefert NullPointerException AWT, Swing, JavaFX & SWT 8
C 2D-Grafik bild aus resource folder laden AWT, Swing, JavaFX & SWT 3
R Image laden sehr langsam AWT, Swing, JavaFX & SWT 7
Luk10 Laden von eingebundenen .png Datein AWT, Swing, JavaFX & SWT 15
S Objekt einmal laden zweimal anzeigen 3d AWT, Swing, JavaFX & SWT 6
C 2D-Grafik BufferedImage laden, Frage zum Code AWT, Swing, JavaFX & SWT 2
P Text-Vorschläge für JTextField aus ner Liste laden AWT, Swing, JavaFX & SWT 8
J Bild aus Datei in BufferedImage laden AWT, Swing, JavaFX & SWT 4
S GUI per XML zur Laufzeit laden AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben