Bilder in Java

marioschluse

Mitglied
Hallo Leute, was ist die effizienteste Methode
Bilder in Java anzuzeigen und zu ändern?

Ich gehe momentan wie folgt vor:
- Hole Pfad des Bilds
- Erzeuge BufferedImage und lese das Bild ein
- Erzeuge aus dem BufferedImage ein Icon
- Erzeuge ein Label mit dem Icon

Das Problem ist jetzt: Ich hab ein Componentlistener eingebaut, dadurch ändere ich die Größe
des Bilds, wenn ich die Größe des Panel, in dem das Label drinne ist, verändert wird.

Leider muss ich dann jedesmal ein neues Icon erzeugen usw. und das dauert zu lange....

Hat jemand einen bessere Idee?

Danke
 

Marco13

Top Contributor
Kommt da irgendwo ein getScaledInstance vor?

Je nachdem, worum es geht, könnte es sinnvoll sein, sich einfach eine ImageComponent zu basteln, d.h. eine Klasse die von JPanel erbt, im Konstruktor das originalbild übergeben bekommt, und es in paintComponent nur mit
g.drawImage(image,0,0,getWidth(),getHeight(),this);
in der passenden Größe zeichnet.
 

André Uhres

Top Contributor
Wie Marco13 schon andeutete, paintComponent überschreiben und dort das Bild so malen:
Java:
Dimension d = getSize();
g.drawImage(image, 0, 0, d.width, d.height, null);
Dann wird das Bild skaliert auf Panelgröße. Hier findest Du ein Beispiel: Background Panel Java Tips Weblog

Gruß,
André
 

marioschluse

Mitglied
Danke für die Antworten.

Hm... mit dem Beispiel kann ich leider nicht viel Anfangen.
Das Beispiel geht ja nicht so vor, wie Marco13 beschrieben hat...
Hast du vielleicht ein anderes Beispiel, das so vorgeht wie Marco beschrieben hat?
 

André Uhres

Top Contributor
Im Beispiel findest Du die Methode paintComponent. Dort steht u.A. dieser Code:
Java:
		switch (style)
		{
			case SCALED :
				drawScaled(g);
				break;

			case TILED  :
				drawTiled(g);
				break;

			case ACTUAL :
				drawActual(g);
				break;

			default:
            	drawScaled(g);
		}
Im Fall von SCALED wird drawScaled aufgerufen, wo das Bild so gemalt wird, wie beschrieben.

Gruß,
André
 

marioschluse

Mitglied
Hi,

Die methode "drawScaled" erwartet Graphic g als Parameter...
Was soll das sein???
Und dann noch dieser komischer Konstruktor mit rekursion...

Ich blick in dem Beispiel Code leider nicht durch...

Kann mir jemand vlt ein minimalistisches Beispiel zeigen?

Dafür wäre ich sehr dankbar...
 

André Uhres

Top Contributor
Die methode "drawScaled" erwartet Graphic g als Parameter...
Was soll das sein???

Das ist der Parameter von paintComponent und wird hier erklärt: Malen in Swing Teil 1: der grundlegende Mechanismus

Und dann noch dieser komischer Konstruktor mit rekursion...

Mitunter werden zwar verschiedene Konstruktoren angeboten, aber nur in einem Konstruktor verbirgt sich die tatsächliche Initialisierung des Objekts. Java lässt deshalb eine Konstruktor-Verkettung mit dem Schlüsselwort this zu. Siehe auch: Galileo Computing :: Java ist auch eine Insel – 6.5.5 Einen anderen Konstruktor der gleichen Klasse aufrufen

Ich blick in dem Beispiel Code leider nicht durch...
Kann mir jemand vlt ein minimalistisches Beispiel zeigen?

Kein Problem:

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

/*
 *  Support custom painting on a panel in the form of
 *  images that can be scaled
 */
public class BackgroundPanel extends JPanel {

    private Image image;

    /*
     *	Set the image used as the background
     */
    public void setImage(Image image) {
        this.image = image;
        repaint();
    }

    /*
     *  Provide a preferred size equal to the image size
     */
    @Override
    public Dimension getPreferredSize() {
        if (image == null) {
            return super.getPreferredSize();
        } else {
            return new Dimension(image.getWidth(null), image.getHeight(null));
        }
    }

    /*
     *  Add custom painting
     */
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        //  Draw the image

        if (image == null) {
            return;
        }

        /*
         *  Custom painting code for drawing a SCALED image as the background
         */
        Dimension d = getSize();
        g.drawImage(image, 0, 0, d.width, d.height, null);
    }
}

Gruß,
André
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Bilder werden unscharf angezeigt Spiele- und Multimedia-Programmierung 5
S Bilder Für Schachfiguren Spiele- und Multimedia-Programmierung 14
beatles Minesweeper - keine Bilder Spiele- und Multimedia-Programmierung 3
P [Spiel]Welche Bilder sind gleich Spiele- und Multimedia-Programmierung 2
O Bilder senden TV über DLNA? Spiele- und Multimedia-Programmierung 0
T Bilder Elegant darstellen... Spiele- und Multimedia-Programmierung 7
T Bilder einbinden, bzw. ändern Spiele- und Multimedia-Programmierung 5
M Bilder effizient speichern/serialisieren Spiele- und Multimedia-Programmierung 10
D Slick Lib - Bilder einlesen funktioniert nicht Spiele- und Multimedia-Programmierung 2
B Bilder in GUI ändern ohne repaint() Spiele- und Multimedia-Programmierung 6
T Spielautomat bilder vergleichen Spiele- und Multimedia-Programmierung 34
A Bilder werden nicht geladen Spiele- und Multimedia-Programmierung 6
S Datenbank gesucht für Bilder(gif-dateien) Spiele- und Multimedia-Programmierung 5
A Bilder (auf JPanels) auf komplette Zellengröße (GridBagLayout) skalieren Spiele- und Multimedia-Programmierung 2
I Bilder aus Quaxli's Tutorial Spiele- und Multimedia-Programmierung 3
A bilder performant und unhässlich skalliert darstellen? Spiele- und Multimedia-Programmierung 10
A 2 Bilder übereinander legen Spiele- und Multimedia-Programmierung 15
J 2D-Bilder in Java3D Spiele- und Multimedia-Programmierung 4
A Bilder(BMP) speichern Spiele- und Multimedia-Programmierung 2
S Bilder zuscheiden - Werte von php übergeben Spiele- und Multimedia-Programmierung 7
D Bilder besser interpolieren Spiele- und Multimedia-Programmierung 4
F Dynamische Bilder erzeugen? Spiele- und Multimedia-Programmierung 7
R Bilder aus animierter .gif extrahieren? Spiele- und Multimedia-Programmierung 4
C jpg.Bilder teilen/bearbeiten für Puzzle Spiele- und Multimedia-Programmierung 7
A Bilder bewegen Spiele- und Multimedia-Programmierung 2
M Bilder verzerren [Rechteck -> Trapez] Spiele- und Multimedia-Programmierung 4
K Bilder drehen Spiele- und Multimedia-Programmierung 5
H Bilder speichern 2 - Methode richten? Spiele- und Multimedia-Programmierung 2
H Bilder speichern Spiele- und Multimedia-Programmierung 3
A Bilder flackern Spiele- und Multimedia-Programmierung 5
T Gekachelte Bilder darstellen Spiele- und Multimedia-Programmierung 2
xFearofdarkness Feinde überlappen sich in Java Spiel Spiele- und Multimedia-Programmierung 3
A Minecraft Java Buch fehlermeldung Spiele- und Multimedia-Programmierung 61
yakazuqi Minecraft java.lang.Error: Watchdog Spiele- und Multimedia-Programmierung 3
L Fehler bei "Nochmal Spielen" (Java) Spiele- und Multimedia-Programmierung 1
N Minecraft Java Error Spiele- und Multimedia-Programmierung 6
M "Java Datei" Cannot be resolved to a variable Spiele- und Multimedia-Programmierung 2
1Spinne Minecraft Fabric Modding Java Error Spiele- und Multimedia-Programmierung 2
Joris Minecraft Minecraft Java Server Spiele- und Multimedia-Programmierung 6
Shanic Minecraft Minecraft Forge Server "Falsche Java Version" Spiele- und Multimedia-Programmierung 6
O Browser-basiertes online Pokerspiel mit Java Spiele- und Multimedia-Programmierung 1
M Spiel Mühle-Programmierung Java Spiele- und Multimedia-Programmierung 9
G VST-Plugins in Java verwenden Spiele- und Multimedia-Programmierung 0
P Audio Visualizer mit OpenGL in Java? Spiele- und Multimedia-Programmierung 4
P Snake Java Hilfe Spiele- und Multimedia-Programmierung 4
D Minecraft [Minecraft] Java Start Fehler (Core-Dump) Spiele- und Multimedia-Programmierung 1
T Welche packages aus der java api doku ist hilfreich zur Android Spieleprogrammierung Spiele- und Multimedia-Programmierung 2
A Programmieren eines Memorys mit Java (in Eclipse) Spiele- und Multimedia-Programmierung 5
L Sound in Java Spiel Spiele- und Multimedia-Programmierung 5
C Java findet FluidSynth nicht Spiele- und Multimedia-Programmierung 2
I Java Andere Fenster in Borderless-Mode setzen Spiele- und Multimedia-Programmierung 16
leon_krys Java-Bußgeldrechner Spiele- und Multimedia-Programmierung 5
G [Java/KryoNet/LibGDX] Mutliplayer Packet Frage Spiele- und Multimedia-Programmierung 2
P Website mit Java Backend? Spiele- und Multimedia-Programmierung 1
D Java Bild bewegen funktioniert nicht Spiele- und Multimedia-Programmierung 8
J Fertigungstechnik.. PLS HALP.. Quellcode vom Text in java-Klasse speichern Spiele- und Multimedia-Programmierung 2
E Kalah Java Implementation Spiele- und Multimedia-Programmierung 1
G [Java] Vereinfachung von Boolean Abfragen Spiele- und Multimedia-Programmierung 3
G [LibGDX/Java] ArrayList Object Speicher Spiele- und Multimedia-Programmierung 3
T Java 3D Spiele- und Multimedia-Programmierung 2
A Spielfelder erstellen mit Jogl Java durch ein Koordinaten Array Spiele- und Multimedia-Programmierung 1
J Java Buttons Spiele- und Multimedia-Programmierung 6
T Java Kalender Spiele- und Multimedia-Programmierung 5
Ice4P4rty Java Optische Oberfläche Spiele- und Multimedia-Programmierung 2
MABY Eine mp3 Datei in Java abspielen Spiele- und Multimedia-Programmierung 14
D Java Bomberman Probleme java.lang.NullPointerException Spiele- und Multimedia-Programmierung 1
N Spiele-Menü in Java Spiele- und Multimedia-Programmierung 9
J HDMI Ausgänge mit Java programmieren? Spiele- und Multimedia-Programmierung 18
H Yu-Gi-Oh! Mit Java was tun? Spiele- und Multimedia-Programmierung 6
G Component System Java 2D Game LibGDX Spiele- und Multimedia-Programmierung 6
S Pong java.lang.StackOverflowError Spiele- und Multimedia-Programmierung 3
C Java aus Klasse rausgehen Spiele- und Multimedia-Programmierung 2
MaxG. Java Internet Radio Spiele- und Multimedia-Programmierung 6
G [Java Server] Allgemeine Frage zum Thema Networking in Videospielen Spiele- und Multimedia-Programmierung 15
P java.lang.NoClassDefFoundError: in Greenfoot Spiele- und Multimedia-Programmierung 0
G Java Achsen invertieren Spiele- und Multimedia-Programmierung 2
G Java 2D Spiel mit LWJGL verbinden Spiele- und Multimedia-Programmierung 1
$ Einstieg in Java Game Development Spiele- und Multimedia-Programmierung 11
BraunBerry Java Game Pixel "einfärben" Spiele- und Multimedia-Programmierung 6
BraunBerry Java Game verbesserte Kollisionserkennung Spiele- und Multimedia-Programmierung 18
BraunBerry Java Game Waypoint System Spiele- und Multimedia-Programmierung 3
S Hilfe bei Java Gui Spiele- und Multimedia-Programmierung 2
D Java sound pulseaudio Spiele- und Multimedia-Programmierung 0
David Schwarzbeck Java 3 dimensionale Kollisions Abfrage Spiele- und Multimedia-Programmierung 2
M Gesellschaftsspiel Mühle in Java programmieren Spiele- und Multimedia-Programmierung 3
beatles Java Minesweeper - OS X und Win7 Unterschied Spiele- und Multimedia-Programmierung 2
D Minecraft Java JDK installiert - Minecraft läuft nichtmehr in 64 Bit Spiele- und Multimedia-Programmierung 2
E TMX - Dateien in Java laden Spiele- und Multimedia-Programmierung 1
K Erstellen eines Fotoalbums mit Java Spiele- und Multimedia-Programmierung 8
windl MoviePlayer in Java Spiele- und Multimedia-Programmierung 0
S 2D-Render Probleme LWJGL 2 (Java) Spiele- und Multimedia-Programmierung 1
F Klausurersatz: Ein Java-Programm erstellen und dieses präsentieren. Spiele- und Multimedia-Programmierung 2
E Java Jump and Run Map zu groß Spiele- und Multimedia-Programmierung 14
P java lwjgl Game Spiele- und Multimedia-Programmierung 0
J programm mit java-plugin Spiele- und Multimedia-Programmierung 2
D Java Webgame, welche Frameworks oder Techs sind von Nöten? Spiele- und Multimedia-Programmierung 5
P Java 2D Bug? Spiele- und Multimedia-Programmierung 8
T Problem mit Eclipse (java)-(minecraft) Spiele- und Multimedia-Programmierung 3
R Java App sendet Midi Daten über Flash Spiele- und Multimedia-Programmierung 3
O Java Zeile aus Textdatei zufällig ausgeben Spiele- und Multimedia-Programmierung 8

Ähnliche Java Themen

Neue Themen


Oben