Geladene Grafik in ImageIcon auf Panel fest positionern.

Status
Nicht offen für weitere Antworten.
J

JonasT

Gast
Hallo,

Ich lade in einem Programm eine .png Datei in ein ImageIcon welches ich auf einem Frame darstelle:
Java:
JLabel lblKarte = new JLabel(getPic(filedia));
lblKarte.setLayout(null);
lblKarte.setBounds(0,0,986,767);
frame.add(lblKarte);

Java:
private ImageIcon getPic(FileDialog filedia){
    filedia.show();
    try{
      String filename=filedia.getDirectory()+filedia.getFile();
      ImageIcon ico=new ImageIcon(filename);
      return ico;
    }
    finally{
      System.out.println("ERROR!");
    }
  }

nun möchte ich gerne, dass die Grafik auf meinem JFrame, also im Programmfenster immer an der Position 0,0 bleibt. Wenn ich aber in der Aktuellen Konfiguration die Größe des Programmfensters ändere zentriert sich die Grafik immer im Frame. Wie kann ich das abstellen. (Verwende ein Null-Layout und setze Positionen mit setBounds)
 

Michael...

Top Contributor
Wenn ich aber in der Aktuellen Konfiguration die Größe des Programmfensters ändere zentriert sich die Grafik immer im Frame. Wie kann ich das abstellen. (Verwende ein Null-Layout und setze Positionen mit setBounds)
Kein Null-Layout verwenden. Da es sich bei dem Label wohl nicht um die einzige Komponente handelt ist es schwer ein passendes Layout zu empfehlen. Aber grundsätzlich ist ein Null-Layout immer Käse...
 
J

JonasT

Gast
Habe zur Zeit nur ein ImageIcon und ein Icon jeweils auf Labeln auf dem Frame.
Beide haben die gleiche Größe und sollen übereinander an der Position 0,0 liegen.

Bei dem Label mit Icon funktioniert das super, bei ImageIcon tritt aber das beschriebende Problem auf.

Hätte kein Problem damit ein anderes Layout zu verwenden, nur weis ich nicht wie ich dann die Labels übereinander bekomme.
 

L-ectron-X

Gesperrter Benutzer
...
Code:
lblKarte.setLayout(null);
Diese Anweisung bewirkt nichts, weil JLabels von Hause aus das NullLayout haben. NullLayout ist besser zu meiden. Professionelle, anspruchsvolle Layouts werden immer mit LayoutManagern erzeugt.
 

Michael...

Top Contributor
Hätte kein Problem damit ein anderes Layout zu verwenden, nur weis ich nicht wie ich dann die Labels übereinander bekomme.
Benutzt Du die Labels nur zum Darstellen der Pics? Dann könnte eventuell eine eigene Komponente in der Du die Bilder selbst zeichnest weiterhelfen. Ansonsten wenn Du mehrere Komponenten überlagern willst würde ich einen eigenen LayoutManager schreiben.
 
J

JonasT

Gast
Zunächst vielen Dank für die bisherigen Antworten,

Ich habe auch für den Frame mit setLayout(null) angegeben.
Für das Label lblKarte habe ich dies Testweise entfernt.

Die Größe des Labels ist doch mit setBounds festgesetzt oder? Warum ändert sich hier offenbar trotzdem noch nachträglich Größe oder Position des Labels?
 

Michael...

Top Contributor
Die Größe des Labels ist doch mit setBounds festgesetzt oder? Warum ändert sich hier offenbar trotzdem noch nachträglich Größe oder Position des Labels?
Das dürfte eigentlich nicht sein. Sofern der LayoutManager der Komponente entfernt wurde, haben Änderungen der Größe dieser Komponente keine Auswirkungen die darin befindlichen Komponenten.
Kannst Du mal ein KSKB posten?
 
J

JonasT

Gast
So, ich habe jetzt Mal das Beispiel weitestgehend zusammengekürzt, sodass man den Fehler noch sieht. Hoffe es ist nicht zu lang.
Beim Starten muss man eine Grafik auswählen die dann geladen wird (bei mir eine .png)

Java:
import java.awt.FileDialog;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

@SuppressWarnings("serial")
public class Kskb extends JFrame{

  public Kskb(){
	
	FileDialog filedia=new FileDialog(this, "Datei auswählen");
    
    setLayout(null);
    JFrame frame = new JFrame("Java Wegfehler");
    frame.setBounds(0,0,986,767);
    
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    JLabel lblKarte = new JLabel(getPic(filedia));
    lblKarte.setBounds(0,0,986,767);
    
    Route route=new Route(lblKarte.getWidth(),lblKarte.getHeight());
    JLabel lblRoute = new JLabel(route);
    lblRoute.setLayout(null);
    lblRoute.setOpaque(false);
    lblRoute.setBounds(0,0,986,767);
    
    frame.add(lblRoute);
    frame.add(lblKarte);
    frame.setVisible(true);
  }
  
  @SuppressWarnings("deprecation")
  private ImageIcon getPic(FileDialog filedia){
    filedia.show();
    try{
      String filename=filedia.getDirectory()+filedia.getFile();
      ImageIcon ico=new ImageIcon(filename);
      return ico;
    }
    finally{
      System.out.println("ERROR!");
    }
  }
	
	public static void main(String[] args){
		new Kskb();
	}
}

Java:
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;

import javax.swing.Icon;

public class Route implements Icon {
  
  int w,h;
  
  public Route(int w, int h){
    this.w=w;
    this.h=h;
  }
  
  public void paintIcon(Component c, Graphics g, int x, int y){
		g.setColor(Color.RED);
	    g.fillRect(10, 10, 50, 50);
		g.fillRect(60, 60, 50, 50);
		g.fillRect(110, 110, 50, 50);
		g.fillRect(160, 160, 50, 50);
		g.fillRect(210, 210, 50, 50);
  }
  public int getIconWidth(){
    return w;
  }
  public int getIconHeight(){
    return h;
  }

  
}
 

Michael...

Top Contributor
Du erzeugst zwei Frame Objekte.
Einmal erbt die Klasse Kskb von JFrame, dessen Layout wird auf null gesetzt.
In deren Konstruktor erzeugst Du einen neuen JFrame (Variable frame) der behält das Standard Layout (BorderLayout). Die Labels werden in letzteren eingefügt.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Libraries für AWT für andere Grafik-Frameworks tauglich machen AWT, Swing, JavaFX & SWT 6
G 2D-Grafik Grafik in zwei verschiedenen Fenstern gleichzeitig zeichnen AWT, Swing, JavaFX & SWT 9
R Grafik per JButton laden und austauschen lassen AWT, Swing, JavaFX & SWT 14
M Umwandlung in den HSV-Farbraum lässt die Grafik pixelig werden AWT, Swing, JavaFX & SWT 8
S 2D-Grafik Winkelberechnungen auf 2D Grafik AWT, Swing, JavaFX & SWT 2
E Grafik karte erkennen AWT, Swing, JavaFX & SWT 3
S JavaFX Java Custom Node Grafik zurückgeben AWT, Swing, JavaFX & SWT 2
D Swing JCombobox Aktion löscht Grafik AWT, Swing, JavaFX & SWT 1
K Grafik in JFrame einpassen AWT, Swing, JavaFX & SWT 3
C Nach Aufruf von anderer Klasse streikt Grafik AWT, Swing, JavaFX & SWT 1
T AWT Grafik"Array" einzelne Elemente verschieben AWT, Swing, JavaFX & SWT 1
Sanni94 JavaFX Kann man eine Grafik in einen Text einbinden? AWT, Swing, JavaFX & SWT 2
S Höhendaten in einer Grafik ausgeben AWT, Swing, JavaFX & SWT 2
S Grafik: Programm kommt nicht zur paint()-Methode AWT, Swing, JavaFX & SWT 6
S Grafik in einer Klassen einfügen/hinzufügen AWT, Swing, JavaFX & SWT 1
C 2D Grafik ein Bild soll permanent durchlaufen AWT, Swing, JavaFX & SWT 2
S 3D-Grafik 3d Grafik auf einem JPanel oder im JScrollPane AWT, Swing, JavaFX & SWT 1
F AWT Grafik wird nicht richtig aktualisiert AWT, Swing, JavaFX & SWT 2
J JTabbedPane Grafik unterhalb der Tabs AWT, Swing, JavaFX & SWT 3
F Grafik hängt sich auf AWT, Swing, JavaFX & SWT 20
S LookAndFeel GUI-Grafik AWT, Swing, JavaFX & SWT 5
J Verschwommene Grafik AWT, Swing, JavaFX & SWT 4
C LayoutManager Grafik soll nicht im GridLayout Skalieren AWT, Swing, JavaFX & SWT 3
F Grafik mit Buttons versehen AWT, Swing, JavaFX & SWT 8
C Grafik Taschenrechner AWT, Swing, JavaFX & SWT 5
J Grafik (Kreis) schneller bewegen? AWT, Swing, JavaFX & SWT 6
Kenan89 Grafik und Text in JPanel anzeigen AWT, Swing, JavaFX & SWT 8
D Fenster mit Grafik überlappen AWT, Swing, JavaFX & SWT 3
Maxim6394 Rotation einer Grafik in swing AWT, Swing, JavaFX & SWT 13
D Swing Grafik in JPanel anzeigen. AWT, Swing, JavaFX & SWT 3
W Grafik von JFrame korrekt speichern AWT, Swing, JavaFX & SWT 7
S Grafik Fehler AWT, Swing, JavaFX & SWT 15
M Swing JLabel (mit einer Grafik) aktualisieren AWT, Swing, JavaFX & SWT 2
D 2D-Grafik Problem beim Drucken eines Grafik-Objekts AWT, Swing, JavaFX & SWT 2
Daniel_L Grafik erstellen, drin zeichnen und dann speichern AWT, Swing, JavaFX & SWT 2
D Grafik über JPanels hinweg verschieben AWT, Swing, JavaFX & SWT 2
C Grafik von main aus aufrufen AWT, Swing, JavaFX & SWT 13
O Swing Label(bzw. Grafik) verdekt von anderm Label AWT, Swing, JavaFX & SWT 2
T rekursive Grafik AWT, Swing, JavaFX & SWT 5
I 2D-Grafik Problem mit schreiben von Text auf eine Grafik AWT, Swing, JavaFX & SWT 7
F Swing Framework gesucht (Swing, Chart, "Scheduling" Grafik) AWT, Swing, JavaFX & SWT 2
S Pacman-Grafik AWT, Swing, JavaFX & SWT 23
N Eigener Grafik Editor mit fehlerhafter Anzeige AWT, Swing, JavaFX & SWT 4
lordcarlos Dynamische und interaktive grafik AWT, Swing, JavaFX & SWT 5
D Systemmodale Grafik AWT, Swing, JavaFX & SWT 10
W Grafik aktualisieren AWT, Swing, JavaFX & SWT 5
S Swing Zugriff auf Polyline in Grafik AWT, Swing, JavaFX & SWT 4
A Swing Bei größe verändern des Fensters Grafik weg AWT, Swing, JavaFX & SWT 3
C gute Grafik-Bibliotheken gesucht AWT, Swing, JavaFX & SWT 6
D JFormattedTextfield um Grafik erweitern AWT, Swing, JavaFX & SWT 15
O Grafik wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
P JPanel mit Grafik von HDD über JTree AWT, Swing, JavaFX & SWT 10
S 2D-Grafik beeinflussen durch Scrollbalken AWT, Swing, JavaFX & SWT 2
A Grafik aus MIME-kodiertem Inhalt erzeugen AWT, Swing, JavaFX & SWT 2
T (WACOM) Grafik Tablet abfragen AWT, Swing, JavaFX & SWT 3
S Button mit Grafik versehen AWT, Swing, JavaFX & SWT 5
D Grafik bearbeiten AWT, Swing, JavaFX & SWT 11
M Ich habe Werte und Brauche Grafik! AWT, Swing, JavaFX & SWT 3
M Grafik flexibel an berechneten Koordinaten positionieren AWT, Swing, JavaFX & SWT 4
M dynamische Grafik in JFrame einbetten AWT, Swing, JavaFX & SWT 2
G Transparente Grafik über JMF Video zeichnen AWT, Swing, JavaFX & SWT 2
I Grafik in Text umwandeln AWT, Swing, JavaFX & SWT 11
G Grafik auf mehrere Methoden/Klassen zerlegen AWT, Swing, JavaFX & SWT 2
G Grafik in Button einbinden AWT, Swing, JavaFX & SWT 3
M Grafik in JFrame in Kombination mit Steuerelementen AWT, Swing, JavaFX & SWT 2
T grafik in jpanel wird nicht neugezeichnet AWT, Swing, JavaFX & SWT 7
F Zellen über eine Grafik legen AWT, Swing, JavaFX & SWT 7
S Grafik Farbwert verändern? AWT, Swing, JavaFX & SWT 8
D Farbe einer Grafik über den Cursor abfragen AWT, Swing, JavaFX & SWT 6
G Keine Anzeige von Grafik bei externem paintComponent-Aufruf AWT, Swing, JavaFX & SWT 2
S Popup auf Grafik AWT, Swing, JavaFX & SWT 18
J Grafik "sichtbar" verschieben AWT, Swing, JavaFX & SWT 2
G Grafik auf JComponent ohne Überschreiben von Paint-Methoden AWT, Swing, JavaFX & SWT 4
G Grafik erzeugen: eine Art Zustandsgraph eines Automaten AWT, Swing, JavaFX & SWT 7
P grafik in JScrollPanel AWT, Swing, JavaFX & SWT 5
D AppletCode als JAR aus JSP benutzen und als Grafik speichern AWT, Swing, JavaFX & SWT 2
S Update von Grafik auf JPanel AWT, Swing, JavaFX & SWT 2
S Auf einem JTabbedPane eine Grafik zeichnen AWT, Swing, JavaFX & SWT 11
W Grafik in JLabel aktualisieren AWT, Swing, JavaFX & SWT 4
S Tooltip mit Grafik AWT, Swing, JavaFX & SWT 2
D Visualisierung einer Selektion in einer Grafik. AWT, Swing, JavaFX & SWT 7
P Vektor-Grafik im XML-Format speichern AWT, Swing, JavaFX & SWT 39
P Grafik auf Button AWT, Swing, JavaFX & SWT 3
E Einträge der JComboBox werden durch Grafik verdeckt AWT, Swing, JavaFX & SWT 11
L Komponente und Grafik gleichzeitig auf JPanel zeichnen AWT, Swing, JavaFX & SWT 11
T swing - grafik schrittweise ausgeben ohne repaint() AWT, Swing, JavaFX & SWT 2
B ImageIcon auf JPanel austauschen AWT, Swing, JavaFX & SWT 3
C Swing ImageIcon erstellen, skalieren und verwenden AWT, Swing, JavaFX & SWT 3
N imageIcon zeigt kein Bild an AWT, Swing, JavaFX & SWT 5
P Swing Mehrere JLabels mit ImageIcon in JPanel lesen AWT, Swing, JavaFX & SWT 1
F JLabel mit ImageIcon per Button bewegen AWT, Swing, JavaFX & SWT 4
CptK Swing Button: ImageIcon unter den Text AWT, Swing, JavaFX & SWT 4
cool_brivk24 Swing ImageIcon lädt kein Bild AWT, Swing, JavaFX & SWT 12
P Kein Bild wird angezeigt bei ImageIcon AWT, Swing, JavaFX & SWT 16
S Bild mit ImageIcon auf GUI verkleinern AWT, Swing, JavaFX & SWT 3
K Swing JTable mit ImageIcon und Text in einer Zelle AWT, Swing, JavaFX & SWT 1
L ImageIcon auf JPanel wird nicht angezeigt(keiner Fehlermeldung) AWT, Swing, JavaFX & SWT 11
stylegangsta JButton Fehelr javax.swing.ImageIcon.<init>(Unknown Source) AWT, Swing, JavaFX & SWT 24
L JButton mit ImageIcon/Fehlermeldung AWT, Swing, JavaFX & SWT 1
Tausendsassa ImageIcon?! Hilfe! AWT, Swing, JavaFX & SWT 10

Ähnliche Java Themen

Neue Themen


Oben