welche Methode am besten sich für JPG einfügung in Java anzugewöhnen ?

Vilkazzz

Mitglied
moin mal wieder.

also, es gibts gewiss viele Methoden und viele führen zum Ziel.

ich hatte bisher mit

Java:
try {
					Newframe.setContentPane(new JLabel(new ImageIcon(ImageIO.read(new File(background)))));
				} catch (IOException e1) {
					e1.printStackTrace();
				}

experimentiert, funktioniert.

weiss inzwischen dass es direkt in die Hauptframe gesetzt wird, will nicht mehr,
und schon bin ich auf

Java:
label.setIcon(image) gestossen.

die Gramatik ist viel einfacher.

Java:
ImageIcon buggy3 = new ImageIcon(jpgFolder+"buggy3.jpg");
jl.setIcon(buggy3);
jp.add(jl);

eine andere Seite schlägt wieder was anderes vor

Java:
BufferedImage bi = new BufferedImage(this.getSize().width, this.getSize().height, BufferedImage.TYPE_INT_ARGB); 
Graphics g = bi.createGraphics();
this.paint(g);  //this == JComponent
g.dispose();
try{ImageIO.write(bi,"png",new File("test.png"));}catch (Exception e) {}


also, meine Fragen dazu.

Welche Methode ist am besten für folgende Fälle :

1) einfach statisches Background.
2) ein Bild welches ich aktiw bewegen könnte (Sprites like ?)

ich will auf jedem Fall in jeder Methode das Bild austauschen und dessen Koordinaten verändern können (setBounds mäsig).

wenn ich noch "resizen" kann ist bonus, aber kein muss, da ich es auch ausserhalb von java machen könnte.

was wäre am klugsten zu benutzen wenn ich ein mehrstufiges Konstrukt machen möchte, wie mit

Hintergrundbild
vordergrund bild

und kann ich es unendlich ausdehnen mit x Bilder übereinander ?

bisher finde ich setIcon eigentlich sehr einfach, aber kann es auch das alles was ich will ?
 

Network

Top Contributor
Also die Sachen die du gefunden hast, sind schonmal sehr vielversprechend

1) Also die erste Methode (mit Newframe) ist im Grunde fast nur ein Oneliner deiner zweiten Methode. Das ist aber leicht dämlich es so zu machen. Rate ich von ab, hat sowieso wenig Anwendung.

2) Die zweite Methode "setIcon" ist wie gesagt nichts anderes als "new JLabel( icon )". JLabels sind gängige Methoden um Bilder in Programmen darzustellen per Swing.
Also jedes in Java geschriebene Anwendungsprogramme wird es wahrscheinlich so machen.

3) Mit der dritten Methode "Graphics g = bi.createGraphics();" (parse am besten zu Graphics2D "Graphics2D g2d = (Graphics2D)bi.createGraphics();") bzw mit der Klasse Graphics2D kannst du deine BufferedImages manipulieren (zum Beispiel vergrößern, rotieren, verzerren, mit etwas anderem übermalen).
Warum man das so machen wollen würde, ist mir absolut unbekannt.


Also Nummer 1&3 sind absoluter Mist (in deinem Fall). Nummer 2 ist für herkömmliche Anwendungsprogramme mit Swingoberflächen absolut geeignet - dafür wurde das JLabel gemacht.

Und hier kommt die für dich beste Methode:
Du erstellst eine Klasse die von JPanel erbt
Java:
public class AdjustableImage extends JPanel {
	private BufferedImage bf;
	
	public AdjustableImage( BufferedImage bf ) {
		this.bf = bf;
	}
}

und überschreibst die Methode "protected void paintComponent(Graphics g)" (ACHTUNG! Nicht die Methode "protected void paintComponents(Graphics g)")

Java:
public class AdjustableImage extends JPanel {
	private Graphics2D g2d;
	private BufferedImage bfi;
	
	public AdjustableImage( BufferedImage bfi ) {
		g2d = (Graphics2D)bfi.createGraphics();
		this.bfi = bfi;
	}

	protected void paintComponent(Graphics g) {
		g.drawImage( bfi, 0, 0, null );
	}
}

in der Methode paintComponent() kannst du zusätzlich noch ein bisschen Logik reinpacken wie genau du dein Bild zeichnen möchtest.
Das Wort Logik hast du aber nicht von mir gehört, denn normalerweise packt man dort eine große Logik in die Zeichenmethode, da wird nur gezeichnet.

Die Methode wird jedesmal aufgerufen wenn das Betriebssystem meint, deine GUI wäre "dreckig" bzw. veraltet und fordert eine Neuzeichnung dann an.

Möchtest du das hier aber excessiv nutzen, und viele Bilder in kurzer Zeit zeichnen und manipulieren, dann solltest du definitiv deine Bilder die du manipulieren willst bei Programmstart bereits berechnen und im Arbeitsspeicher bei Bedarf halten. Das dauert mit Graphics2D nähmlich ziemlich lange, da das auf der CPU berechnet wird und nicht auf der GPU. (Versuch die mal mit einem Imageviewer auf deinem OS durch die Bilder schnell zu zappen - da geht garnichts ;))

Freundliche Grüße
Network
 

Keyone94

Mitglied
ich würde dir, wenn du Anfänger bist, stark empfehlen kein Swing zu lernen sondern JavaFx, da Swing in den kommenden Jahren aussterben wird.
Außerdem ist das ganze mit JavaFx (in meinen Augen) viel besser/einfacher gelöst als in Swing.
 
Zuletzt bearbeitet:

Vilkazzz

Mitglied
wuau, keine Wiedersprüche ? niemand versucht Swing zu verteidigen ?

hab mal gegoogelt und es scheint zu stimmen, wobei es fast schon mit gewalt durchgeboxt wird :D

okay, dan ziehe ich mir mal JavaFX ein, schadet sowieso nicht 2 Methoden zu kennen anstadt nur eine ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
Jambolo Methode, welche die 3 letzten Parameter Werte speichert Java Basics - Anfänger-Themen 20
L Welche Methode? Java Basics - Anfänger-Themen 7
TheMenox Methoden Bestimmung an welche Methode eine andere Methode ihren Wert weitergeben soll Java Basics - Anfänger-Themen 35
G Lambda Ausdruck: Welche Methode ist die Richtige? Java Basics - Anfänger-Themen 1
Z Methoden Zugriff mit Klasse 3 auf Methode von Klasse 2 welche in Klasse 1 erzeugt wird Java Basics - Anfänger-Themen 6
S Welche Methode in JFrame überschreiben? Java Basics - Anfänger-Themen 12
P Welche Methode damit ich rausfinde auf welchem Laufwerk. Java Basics - Anfänger-Themen 8
T Aufruft Methode, welche Parameter fehlen? Java Basics - Anfänger-Themen 4
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
Q SMS basierte Applikationen, welche Programmiersprache? Java Basics - Anfänger-Themen 8
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
H Welche Werte bei Objekterzeugung eingeben? Java Basics - Anfänger-Themen 2
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15
tony241188 Implementieren Sie die Klasse Hersteller, welche die folgenden Elektrogeräte produziert Java Basics - Anfänger-Themen 3
FelixN Teilsummenproblem / welche Datenstruktur Java Basics - Anfänger-Themen 2
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
W Welche Komponente ist geeignet? Java Basics - Anfänger-Themen 1
A Welche Operation ist das? Java Basics - Anfänger-Themen 2
J Welche Java-Version installieren Java Basics - Anfänger-Themen 9
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
K GUI Entwicklung - Welche Richtung passt für euch zum mobilen Zeitalter? Java Basics - Anfänger-Themen 4
T Datenbank | Welche am Sinnvollsten? Java Basics - Anfänger-Themen 5
S Welche Verteilung? Java Basics - Anfänger-Themen 1
O Methoden welche ich implementier Java Basics - Anfänger-Themen 11
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
M JDK installieren Welche Software bei XP? Java Basics - Anfänger-Themen 5
H Welche IDE zum Buch "Programmieren mit Java" von Reinhard Schiedermeier des Verlags Pearson Studium Java Basics - Anfänger-Themen 19
U Best Practice Fehleranalyse, welche Fehler macht Ihr beim Lernen bzw. auch später Java Basics - Anfänger-Themen 12
E jProgressbar, 6 Versuche, welche value angeben ? Java Basics - Anfänger-Themen 3
M Welche Entwicklungsumgebung? Java Basics - Anfänger-Themen 32
I Welche Schleife/Bedingung nehme ich her Java Basics - Anfänger-Themen 5
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
K Erste Schritte Java lernen - Welche Bücher? Java Basics - Anfänger-Themen 1
P welche Komponente ist im Layout? Java Basics - Anfänger-Themen 2
K Methoden mit den Namen accept. Welche Funktion haben diese? Java Basics - Anfänger-Themen 2
J Welche Methoden laufen im neuen thread ?? Java Basics - Anfänger-Themen 9
S Welche Datenstruktur ist die optimalste um Funktionen fuer bestimmte Wertebereiche abzurufen..? Java Basics - Anfänger-Themen 5
G Welche Java-Version auf meinem Rechner? Java Basics - Anfänger-Themen 2
A Klassen welche Klassen importiert Eclipse automatisch Java Basics - Anfänger-Themen 2
M Welche externen Bibliotheken sind in Java sehr zu empfehlen? Java Basics - Anfänger-Themen 4
I Grafische Benutzeroberflächen - welche Komponente nehme ich am besten? Java Basics - Anfänger-Themen 13
G Welche JAVA IDE? Java Basics - Anfänger-Themen 3
S Klassen Zugriff auf Attribute einer zweiten Klasse, welche durch dritte gesettet wurden? Java Basics - Anfänger-Themen 2
E wann welche Konstanten verwenden? Java Basics - Anfänger-Themen 7
K Welche Java Version ist die richtige Java Basics - Anfänger-Themen 3
V Welche Exceptions müssen importiert werden? Java Basics - Anfänger-Themen 3
A Design Pattern - Welche? Java Basics - Anfänger-Themen 33
C Datenbank - Welche Java Basics - Anfänger-Themen 5
S Welche Art von Liste? Java Basics - Anfänger-Themen 3
S Eigene Exception Schreiben und Welche Auslösen wie ? Java Basics - Anfänger-Themen 7
A Wenn genau welche Liste verwenden? Java Basics - Anfänger-Themen 6
T Welche Schleife? Java Basics - Anfänger-Themen 6
P Java Stream, wann welche Stream verwenden? Java Basics - Anfänger-Themen 3
S Collections Welche Collection ist am geeignetsten? Java Basics - Anfänger-Themen 3
S Input/Output Welche Möglichkeiten Eingabe von User abfragen Java Basics - Anfänger-Themen 5
P Swing - Welche Klasse für ausgeben von Ergebnissen? Java Basics - Anfänger-Themen 3
R Welche Datenstruktor für diese Liste? Java Basics - Anfänger-Themen 6
B Erste Schritte Welche Kenntnisse brauche ich für diese Programmidee? Java Basics - Anfänger-Themen 4
P Vererbung herausfinden welche Klasse was erbt Java Basics - Anfänger-Themen 3
K welche art von Liste für TableModell Java Basics - Anfänger-Themen 2
D Welche API für komplexe XML-Struktur? Java Basics - Anfänger-Themen 25
S welche Programmstruktur? Java Basics - Anfänger-Themen 8
M Welche Datenbank? Java Basics - Anfänger-Themen 5
B Welche Themengebiete benötige ich? Java Basics - Anfänger-Themen 7
StupidAttack Gson, welche Datenstruktur? Java Basics - Anfänger-Themen 4
S Welche Collection kann sich selber sortieren? Java Basics - Anfänger-Themen 8
H Welche Art der Ein/Ausgabe Java Basics - Anfänger-Themen 2
D Welche Datenstruktur für welche Problemstellung? Java Basics - Anfänger-Themen 10
U Welche(s) Framework(s) wären geeignet? Java Basics - Anfänger-Themen 8
StrikeTom Welche Dateitypen unterstützt JMF (Java Media Framework)? Java Basics - Anfänger-Themen 6
S Welche Collection? Java Basics - Anfänger-Themen 5
A Welche UML Software benutzt ihr / ist empfehlenswert? Java Basics - Anfänger-Themen 2
N Welche Datenstukturen und Methoden Java Basics - Anfänger-Themen 3
L Auswahl auf welche Art gespeichert werden soll Java Basics - Anfänger-Themen 6
B Welche Java-Installation ist aktiv? Java Basics - Anfänger-Themen 2
B Finden gemeinsamer Kanten: welche Datenstruktur ? Java Basics - Anfänger-Themen 9
S Welche möglichkeiten gibt es eine Zahl zu spiegeln? Java Basics - Anfänger-Themen 17
U Welche Seite für Anfänger Java Basics - Anfänger-Themen 11
K Welche Entwicklungsumgebung für Einsteiger? Java Basics - Anfänger-Themen 16
S Webapplikation welche alternative zu gwt? Java Basics - Anfänger-Themen 2
cowabunga1984 Unit-Testing - Welche Testfälle sind relevant? Java Basics - Anfänger-Themen 4
H Designfrage: Welche Liste? Java Basics - Anfänger-Themen 3
Z Welche IO-Klasse verwenden? Java Basics - Anfänger-Themen 2
G Welche Datenstruktur ( Sets / Maps)? Java Basics - Anfänger-Themen 10
M Der Java Schlüsselwort null; ?Welche Anweisung und Sinn? Java Basics - Anfänger-Themen 12
G Herausfinden, welche Componente als LETZTES focus hatte Java Basics - Anfänger-Themen 2
H Welche PDF Biblothek? Java Basics - Anfänger-Themen 6
G Variable welche in anderer Klasse liegt, verändern. Java Basics - Anfänger-Themen 2
G Frage:Welche Methodne kann man eine Zahl bzw. ein String Java Basics - Anfänger-Themen 3
U Welche Datenstruktur soll ich nehmen? Java Basics - Anfänger-Themen 11
K Welche Exception? Java Basics - Anfänger-Themen 6
G Welche Datenstruktur ist hier die sinnvolste Java Basics - Anfänger-Themen 6
G welche Teile der api sind wichtig? Java Basics - Anfänger-Themen 3
K Welche methoden gibt es in Java um Zahlen von der Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben