Bilder anzeigen in einer Application

Status
Nicht offen für weitere Antworten.

laja

Mitglied
Hallo Profis *schleim* :)

ich habe gerade das habe Forum durchwühlt, massig Informationen gefunden, aber noch nicht den richtigen Kick
erhalten :(
Mein Ziel ist es, ein Javaprogramm (kein Applet!!!) zu entwerfen, dass eine große Anzahl von kleinen Bildern
anzeigt. Also z.B. 100 ... wären dann 10x10 Bilder bei Auflösung 1024 x 768 (erst mal fest ... wenn's läuft variabel)
... 100 Bilder mit 76 x 76 Pixel in eine Quadrat ... bleibt mir auf der rechten Seite eine Fläche, die ich noch mit
irgendwelchen Buttons usw. zur Benutzerinteraktion versehen kann ...
ich habe schon den Tipp bekommen, dass ich mich an:
Code:
import javax.imageio.*;
import javax.swing.*;
halten soll ... habe es schon diverse Male versucht, bin aber leider immer wieder gescheitert ... mehr als ein Bild
an der gewünschten Position war nicht drin ...
Wenn diese Bilder alle sichtbar sind, möchte ich sie zufällig auswecheln lassen (mischen) ...
... weiteres Problem ist, dass ich die Bilder (jpg) nicht alle vorher von Hand formatieren möchte, sondern, dass sie
automatisch auf 76x76 Pixel gestaucht werden sollen...
Wir würdet ihr das Problem angehen/ lösen???
Mögliche Tipps bitte für Anfänger verständlich formulieren :oops:

Danke im Voraus!
 

laja

Mitglied
nochmals Hallo ... ich denke es war vielleich ein bisschen unpräzise ... deshalb hier mein Code:
Ich habe jetzt zwei Klassen, mit denen ich es schaffe ein Bild anzuzeigen ... leider aber auch nicht mehr, und
leider auch nicht wirklich positioniert :(
Ich hatte mir gedacht, dass ich über "MeinFenster" diverse Male "Komponente" aufrufen kann, um so vielleicht
über ein Array die Bilder und über einen kleine Algorhythmus die Positionen für die Bilder übergeben kann ...
... aber ich scheiter schon früher :cry:
Ich bekomme den Bildpfad "myComp.bildpfad("C:/Java/Präsentation/hellblau.jpg");" nicht von "MeinFenster"
in "Komponente" übergeben ...
Es funktioniert nur solange, wie ich "String pfad = "C:/Java/Präsentation/hellblau.jpg";" direkt in "Komponente"
festlege ...

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

public class MeinFenster extends JFrame{
			
	public MeinFenster() {
		super();
		Container cp = getContentPane(); 
                
        setUndecorated(true);
        setSize(1024,768); 
        
        Komponente myComp = new Komponente();
        myComp.bildpfad("C:/Java/Präsentation/hellblau.jpg");
        cp.add(myComp);
        
        //Komponente myComp2 = new Komponente();
        //myComp2.bildpfad("C:/Java/Präsentation/dunkelblau.jpg");
        //cp.add(myComp2);
	}
	
	public static void main(String[] args) {
		MeinFenster aktuell = new MeinFenster();
	    aktuell.show(); 
	}
}
Code:
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class Komponente extends JComponent {
	String pfad;
	private BufferedImage img;
	public void bildpfad(String name){
		pfad = name;
	}
	public void paintComponent (Graphics g){
		super.paintComponent(g);
		AffineTransform af = new AffineTransform();
		Graphics2D g2 = (Graphics2D) g;
        g2.drawImage(img, af, this);
	}
	public Komponente() {
		if (pfad == "") {
			System.out.println("Sie müssen Namen und Pfad angeben!");
			System.exit(-1);
		}
		
		String pfad = "C:/Java/Präsentation/hellblau.jpg";
		
		try { 
            img = ImageIO.read(new File(pfad));
        } 
        catch (IOException e) { 
            e.printStackTrace();    
        }
	}
}

Ihr könntet mir wirklich eine riesigen Gefallen tun, wenn euch dazu was einfällt, ... und ihr es mich wissen lasst
Gruß laja
 

Grizzly

Top Contributor
Hi laja,

ich habe mal Deine Klasse etwas ;) umgeschrieben:

Code:
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JComponent;

/**
 * Erzeugt ein Voransichtsbild als Swing-Komponente.
 */
public class Thumbnail extends JComponent {
	/** Der Dateiname des Bildes. */
	private String filename;
	/** Das Bild. */
	private Image image;
	
	/**
	 * Erstellt ein Voransichtsbild.
	 * @param filename Der Dateiname des Bildes.
	 * @throws IllegalArgumentException Wenn der Dateiname <code>null</code> ist.
	 * @throws IOException Wenn beim Laden des Bildes ein Ein-/Ausgabe-Fehler auftrat.
	 */
	public Thumbnail(final String filename) throws IOException {
		super();
		if (filename == null) {
			throw new IllegalArgumentException("Argument filename is null.");
		}
		this.filename = filename;
		this.initialize();
	}
	
	/**
	 * Initialisiert das Objekt.
	 * @throws IOException Wenn beim Laden des Bildes ein Ein-/Ausgabe-Fehler auftrat.
	 */
	private void initialize() throws IOException {
		// Komponenten-Größe setzen
		this.setMinimumSize(new Dimension(76, 76));
		this.setPreferredSize(new Dimension(76, 76));
		// Bild laden
		this.image = ImageIO.read(new File(this.filename));
	}
	
	public void paintComponent (Graphics g){
	   super.paintComponent(g);
	   // Bild zeichnen.
	   g.drawImage(this.image, 0, 0, 76, 76, null);
	}
}

Zuerst einmal habe ich der Klasse einen anderen Namen gegeben, dass die Funktion der Klasse beschreibt. Dann habe ich die Übergabe des Dateinamens schon im Konstruktor gelöst. So kann auch gleich beim ersten Zeichnen das Bild angezeigt werden. Bei der Initialisierung der Komponente wird dann auch gleich die Größe der Komponente an sich auf 76x76 Pixel beschränkt. Die Zeichen-Methoden klatscht dann einfach das Bild auf die Komponente.

In Deiner Klasse MeinFenster musst Du jetzt noch das Erzeugen des Thumbnail-Objekts umschreiben sprich den Dateinamen im Konstruktor-Aufruf übergeben. Wenn Du mehrere Thumbnails in das Fenster bekommen willst, musst Du einfach mehere erzeugen und ist das Fenster per add-Methode kleben. Zum Ausrichten musst Du dann halt Dir mal die Layout-Manager anschauen.
 

laja

Mitglied
Hi Grizzly,

erstmal vielen Dank für Deine schnelle Antwort ...
... ich probiere schon einen Moment, Deine Anregungen umzusetzen :###
es gelingt mir nur noch nicht, den Dateinamen zu übergeben ???:L
... meinst Du, es sollte in "MeinFenster" dann ungefähr so aufgerufen werden?
Code:
String dateiname = "C:/Java/Präsentation/hellblau.jpg";
Thumbnail ersteÜbergabe(dateiname) = new Thumbnail();
... wahrscheinlich nicht, sonst würde mein Debugger nicht meckern :(

... echtes positionieren ist in Java nicht drin, oder? Ich meine über exakte
Koordinaten ... geht nur über die Layout-Manager?

Gruß laja (sorry, ich hasse es diese dämlichen Anfängerfragen zu stellen, komme in diesem Fall aber leider nicht dran vorbei)
 

Grizzly

Top Contributor
laja hat gesagt.:
Hi Grizzly,

erstmal vielen Dank für Deine schnelle Antwort ...
... ich probiere schon einen Moment, Deine Anregungen umzusetzen :###
es gelingt mir nur noch nicht, den Dateinamen zu übergeben ???:L
... meinst Du, es sollte in "MeinFenster" dann ungefähr so aufgerufen werden?
Code:
String dateiname = "C:/Java/Präsentation/hellblau.jpg";
Thumbnail ersteÜbergabe(dateiname) = new Thumbnail();
... wahrscheinlich nicht, sonst würde mein Debugger nicht meckern :(

Viel einfacher:
Code:
Thumbnail ersteÜbergabe = new Thumbnail("C:/Java/Präsentation/hellblau.jpg");
Natürlich kannst Du auch einen String definieren und dann dem Konstruktor übergeben. Aber so steht alles in einer Zeile.

laja hat gesagt.:
... echtes positionieren ist in Java nicht drin, oder? Ich meine über exakte
Koordinaten ... geht nur über die Layout-Manager?

Hmm, habe ich jetzt zumindest noch nicht probiert. Aber Du kannst mit dem GridBagLayout Deine Komponenten Tabellen-artig ausrichten. So ähnlich wie mit <table> in HTML - falls Dir das geläufig ist.

laja hat gesagt.:
Gruß laja (sorry, ich hasse es diese dämlichen Anfängerfragen zu stellen, komme in diesem Fall aber leider nicht dran vorbei)

Kein Problem. Solange Du Dich anstrengst und erst einmal selber versuchst, die Sache zu lösen, ist das okay.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
Sugan Java FX Verzeichnisüberwachung -> Bilder auf GUI anzeigen AWT, Swing, JavaFX & SWT 4
D 2D-Grafik Bilder anzeigen AWT, Swing, JavaFX & SWT 4
V Fertige Komponente zum Anzeigen mehrerer Bilder AWT, Swing, JavaFX & SWT 5
J Swing Bilder anzeigen in Gridlayout AWT, Swing, JavaFX & SWT 11
C zwei Bilder nacheinander anzeigen AWT, Swing, JavaFX & SWT 2
M Mehrere Bilder auf einmal anzeigen AWT, Swing, JavaFX & SWT 9
B Einfache jpg-Bilder anzeigen AWT, Swing, JavaFX & SWT 8
B Veränderte Bilder neu laden/anzeigen AWT, Swing, JavaFX & SWT 4
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
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
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
J Bilder auf JPanel (im JScrollPane) nacheinander laden AWT, Swing, JavaFX & SWT 0
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
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
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
K Bilder nacheinander einfügen AWT, Swing, JavaFX & SWT 3
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
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

Ähnliche Java Themen


Oben