Bild nicht in der Mitte

Lucaaa

Bekanntes Mitglied
Hallo! (mal wieder)

Ich hab ein Panel mit einem Bild.
Jedoch ist das Bild nicht in der Mitte (Also Vertikal) Es soll oben und unten den gleichen Abstand zum Rand haben.
Ich hab auch den Eindruck, dass das ganze Panel, das das Image beinhaltet "ImageContainer" nicht mittig angeordnet (wieder vertical) wird.

Hoffe mir kann wer helfen.

Java:
package com.ludevstudio.passwordmanager;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
public class ItemPanel extends JPanel {
 
 JLabel iconContainer, labProvider, labAccount, labPassword;
 JPanel textContainer;
 
 
 
 
 
 Image icon;
 
 
 public ItemPanel() {
  try {
   icon = ImageIO.read(new File("icon.png"));
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  setBorder(new LineBorder(Color.black));
  setPreferredSize(new Dimension(450, 100));  // HIER SOLL DIE GRÖSSE AUTOM. ANGEPASST WERDEN
  setMinimumSize(this.getPreferredSize());
  setMaximumSize(this.getPreferredSize());
  setLayout(new FlowLayout(FlowLayout.LEFT));
 
  initComponents();
 }
 
 public void initComponents() {
  
  Font fontProvider = new Font("Arial", Font.BOLD, 36);
  Font fontAccount = new Font("Arial", Font.ITALIC, 28);
  
  
  
  
  iconContainer = new JLabel(new ImageIcon(getScaledImage(icon, 80, 80)));
  iconContainer.setPreferredSize(new Dimension(100, 100));
  iconContainer.setMaximumSize(iconContainer.getPreferredSize());
  iconContainer.setBorder(new LineBorder(Color.black));
  
  this.add(iconContainer);
  
  
  textContainer = new JPanel();
  textContainer.setLayout(new BoxLayout(this.textContainer, BoxLayout.PAGE_AXIS));
  labProvider = new JLabel("Microsoft OnleDrive");
  labProvider.setFont(fontProvider);
  textContainer.add(labProvider);
  labAccount = new JLabel("Laura Brandt");
  labAccount.setFont(fontAccount);
  textContainer.add(labAccount);
  this.add(textContainer);
 
 
  
 }
 
 private Image getScaledImage(Image srcImg, int w, int h){
     BufferedImage resizedImg = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
     Graphics2D g2 = resizedImg.createGraphics();
     g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
     g2.drawImage(srcImg, 0, 0, w, h, null);
     g2.dispose();
     return resizedImg;
 }
 
}
 

mihe7

Top Contributor
Du solltest Dich dringend damit auseinandersetzen, wie das Layout in Swing funktioniert. Du verwendest FlowLayout, das passt die Größen der Komponenten nicht an, sondern verwendet die bevorzugte Größe der Komponenten, setzt sie nacheinander horizontal ausgerichtet in eine Zeile und bricht ggf. auf weitere Zeilen um.
 

Lucaaa

Bekanntes Mitglied
Du solltest Dich dringend damit auseinandersetzen, wie das Layout in Swing funktioniert. Du verwendest FlowLayout, das passt die Größen der Komponenten nicht an, sondern verwendet die bevorzugte Größe der Komponenten, setzt sie nacheinander horizontal ausgerichtet in eine Zeile und bricht ggf. auf weitere Zeilen um.
Und was soll ich stattdessen am besten verwenden?
 

Lucaaa

Bekanntes Mitglied
Eine Sache noch:
Ich möchte Scrollen können.
Habs folgendermaßen versucht:
Java:
package com.ludevstudio.passwordmanager;
import java.awt.BorderLayout;
import java.awt.ComponentOrientation;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.BoxLayout;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
public class ManagerPanel extends JScrollPane{
 // This Class contains the Manager
 JPanel panel;
 
 // Constructor and params
 public ManagerPanel() {
  panel = new JPanel();
  panel.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 10));
  panel.setMinimumSize(new Dimension(400, 100));
   setViewportView(panel);
   
   
   ItemPanel[] items = new ItemPanel[20];
   for (int i = 0; i<items.length; i++) {
    items[i] = new ItemPanel();
    panel.add(items[i]);
   
  
  
 }
 
 } 
}
Hat aber nicht geklappt. jetzt wird alles nebeneinander angezeigt, ohne jemals die Zeile zu wechseln.
 

mihe7

Top Contributor
Komponenten braucht man höchstens dann zu erweitern, wenn sich am "Verhalten" der Komponente etwas ändert. Ich sehe hier einfach nur eine simple Konfiguration:

Java:
public JComponent getManagePanel() {
    JPanel panel = new JPanel();
    ...
    return new JScrollPane(panel);
}
 

mihe7

Top Contributor
Das kann ich Dir nicht sagen, ich weiß ja nicht, was Du eigentlich vor hast, wo Du das ManagerPanel brauchst usw. Im einfachsten Fall dort, wo Du das Panel brauchst.

Der Punkt dabei ist: Du erweiterst doch JTextField auch nicht zu Klassen NameTextFeld, VornameTextFeld, GeburtstagsTextFeld usw. sondern nimmst einfach das vorhandene JTextField her und konfigurierst es entsprechend. Beim Panel ist das nicht anders.
 

Lucaaa

Bekanntes Mitglied
dort, wo Du das Panel brauchst.
Habs jetzt so gemacht:
Java:
public JComponent getManagePanel() {
     JPanel panel = new JPanel();
     
     
    panel.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 10));
    panel.setMinimumSize(new Dimension(400, 100));
     ItemPanel[] items = new ItemPanel[80];
  for (int i = 0; i<items.length; i++) {
   items[i] = new ItemPanel();
   panel.add(items[i]);
}
     
     return new JScrollPane(panel);
 }
Ist aber das gleiche Problem wie vorher. Das FlowLayout bricht die Zeile nicht ab. Alle ItemPanels werden hintereinander angeordnet.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JavaFX Mandelbrot-bild noch nicht optimiert AWT, Swing, JavaFX & SWT 7
B Bild lädt nicht AWT, Swing, JavaFX & SWT 2
izoards Bild ausdrucken - PageFormat setzen geht nicht AWT, Swing, JavaFX & SWT 5
M Bild wird nicht geladen obwohl sie gefunden wird AWT, Swing, JavaFX & SWT 0
D JavaFX Bearbeitetes Bild wird nicht gespeichert AWT, Swing, JavaFX & SWT 9
J Bild von anderer Klasse will nicht laden AWT, Swing, JavaFX & SWT 1
T Image Loader lädt Bild nicht AWT, Swing, JavaFX & SWT 10
A Swing Bild wird nicht mehr geladen AWT, Swing, JavaFX & SWT 4
A 2D-Grafik Bild wird nicht neu gezeichnet AWT, Swing, JavaFX & SWT 24
M "ImageIO.read()" liest Bild nicht richtig ein AWT, Swing, JavaFX & SWT 3
K Bild in Label wird nicht angezeigt AWT, Swing, JavaFX & SWT 5
S Geladenes Bild wird nicht in JPanel angezeigt AWT, Swing, JavaFX & SWT 7
H Bild wird nicht angezeigt, Fehlercode unverständlich AWT, Swing, JavaFX & SWT 5
J Swing Bild wird nicht auf JLabel angezeigt AWT, Swing, JavaFX & SWT 12
N Bild wird nicht dargestellt AWT, Swing, JavaFX & SWT 4
J Bild in JPanel nicht angezeigt AWT, Swing, JavaFX & SWT 9
M ImageIcon Bild wird beim verkleinern des Fensters nicht verkleinert AWT, Swing, JavaFX & SWT 3
P 2D-Grafik Wieso wird das Bild nicht angezeigt ? AWT, Swing, JavaFX & SWT 4
Z Swing Bild wird nicht angezeigt AWT, Swing, JavaFX & SWT 25
D Bild in JAR wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
M 2D-Grafik repaint() löscht altes Bild nicht AWT, Swing, JavaFX & SWT 2
M Bild aus .jar Archiv laden geht nicht AWT, Swing, JavaFX & SWT 6
S Bild wird auf Canvas in Applet nicht gezeichnet AWT, Swing, JavaFX & SWT 4
J AWT JApplet lädt Bild nicht hoch AWT, Swing, JavaFX & SWT 7
T AWT Bild wird nicht angezeigt AWT, Swing, JavaFX & SWT 7
S Bild wird nicht angezeigt AWT, Swing, JavaFX & SWT 10
A Bild wird nicht ausgegeben AWT, Swing, JavaFX & SWT 4
D Bild nicht sichtbar verändern. AWT, Swing, JavaFX & SWT 8
V Bild wird nicht auf JPanel gezeichnet; Java Problem AWT, Swing, JavaFX & SWT 10
P Bild in JPanel einfügen funktioniert nicht AWT, Swing, JavaFX & SWT 7
L Button ändert eigenes Bild und Progressbar-Value nicht AWT, Swing, JavaFX & SWT 6
M image rotate, bild nicht mehr zu sehen AWT, Swing, JavaFX & SWT 9
F Bild wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
G Bild erscheint in Eclipse, aber nicht wenn Programm aus jar AWT, Swing, JavaFX & SWT 11
M Jwindows nicht sichtbar (graues bild) AWT, Swing, JavaFX & SWT 9
S JWindow zeichent Bild nicht AWT, Swing, JavaFX & SWT 2
M repaint() löscht altes "Bild" nicht? AWT, Swing, JavaFX & SWT 2
E warum wird mein bild nicht angezeigt? AWT, Swing, JavaFX & SWT 6
C Bild wird nicht immer geladen AWT, Swing, JavaFX & SWT 2
berserkerdq2 Wie füge ich ein Bild in javafx mit dem Scenebuilder ein, das automatisch mitgezogen wird, wenn das Fenster vergrößert wird oder Vollbildmodus AWT, Swing, JavaFX & SWT 6
frager2345 Bild aus Dateien lesen und als Hintergrund verwenden AWT, Swing, JavaFX & SWT 2
T Bild in ein graphics füllen AWT, Swing, JavaFX & SWT 2
N imageIcon zeigt kein Bild an AWT, Swing, JavaFX & SWT 5
V JavaFX Bild leer und keine Fehlermeldung AWT, Swing, JavaFX & SWT 21
D JavaFX Größe des Bild an ImageView anpassen AWT, Swing, JavaFX & SWT 3
M Bewegtes Bild im BorderLayout.CENTER AWT, Swing, JavaFX & SWT 6
C Falschfarbenbild (lineare Grauwertspreizung)aus Grauwert-Bild erstellen AWT, Swing, JavaFX & SWT 15
C Kleineres Bild an bestimmte Koordinaten setzen AWT, Swing, JavaFX & SWT 6
S Bild neu skalieren - Bild in Bild speichern? AWT, Swing, JavaFX & SWT 6
N Bild Drehen AWT, Swing, JavaFX & SWT 1
Hatsi09 Swing JPanel Bild einfügen AWT, Swing, JavaFX & SWT 14
M JavaFX Bild zur ImageView in einem Kreis anzeigen. AWT, Swing, JavaFX & SWT 4
T JFrame Bild einfügen AWT, Swing, JavaFX & SWT 9
M Combobox bild anklicken AWT, Swing, JavaFX & SWT 2
cool_brivk24 Swing ImageIcon lädt kein Bild AWT, Swing, JavaFX & SWT 12
B JavaFX Bild um die eigene Achse drehen lassen AWT, Swing, JavaFX & SWT 0
J Swing Bild in Button AWT, Swing, JavaFX & SWT 11
I Bild über FXML (ImageView, Image) anzeigen AWT, Swing, JavaFX & SWT 1
stroggi Swing Mehrere transparentes Objekte (Grafiken) über einem Bild (JLabel) darstellen AWT, Swing, JavaFX & SWT 4
P Kein Bild wird angezeigt bei ImageIcon AWT, Swing, JavaFX & SWT 16
T JavaFX Bild in Tabellenzelle AWT, Swing, JavaFX & SWT 2
Ksanatos Swing Bild (.jpg) einlesen und per Button wechseln AWT, Swing, JavaFX & SWT 9
S JPanel rotieren, Bild ist abgeschnitten, Clipping? AWT, Swing, JavaFX & SWT 0
MaxG. Swing Bild Button AWT, Swing, JavaFX & SWT 7
P Swing Bild Skallieren AWT, Swing, JavaFX & SWT 1
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
A Swing Gemaltes Bild über saveDialog speichern unter AWT, Swing, JavaFX & SWT 15
R 2D-Grafik PNG Bild per Graphics auf JPanel AWT, Swing, JavaFX & SWT 9
S Bild mit ImageIcon auf GUI verkleinern AWT, Swing, JavaFX & SWT 3
T AWT Farben in einem Bild ändern AWT, Swing, JavaFX & SWT 8
I JFrame Bild strecken und auf Bildschirmgröße anpassen AWT, Swing, JavaFX & SWT 2
F Gezeichnetes als bild speichern AWT, Swing, JavaFX & SWT 4
B 2D-Grafik Bild farblich filtern AWT, Swing, JavaFX & SWT 2
B JavaFX ImageView neues Bild zuweisen AWT, Swing, JavaFX & SWT 19
K Bild in JFrame AWT, Swing, JavaFX & SWT 2
S JavaFX Teil eines Bildes ausschneiden / als neues Bild nutzen AWT, Swing, JavaFX & SWT 8
B Swing Unterteiltes JFrame mit Bild in der Mitte AWT, Swing, JavaFX & SWT 4
I Applet BlueJ Applet - Bild mit if-Schleife zeichnen lassen AWT, Swing, JavaFX & SWT 16
Z Bildervorschau, MouseDragged das Bild verschieben AWT, Swing, JavaFX & SWT 1
M JavaFX Ein Bild ohne Rahmen fällt runter? AWT, Swing, JavaFX & SWT 2
G Anonyme Instanz von JXImageView erstellen und mit Bild initialisieren AWT, Swing, JavaFX & SWT 7
A JPanel Bild laden (Porblem mit Dateipfad) AWT, Swing, JavaFX & SWT 2
M JavaFX - Bild in Jar einbinden, sodass es auch außerhalb der IDE geladen wird. AWT, Swing, JavaFX & SWT 2
M Bild Beschreibung mit ImageIO speichern AWT, Swing, JavaFX & SWT 1
I Swing JLabel Bild für 1sec anzeigen lassen AWT, Swing, JavaFX & SWT 13
C GUI öfters durchlaufen und hinterher Bild speichern AWT, Swing, JavaFX & SWT 1
M AWT Farben in Bild ersetzen AWT, Swing, JavaFX & SWT 11
E JavaFX Bild einfügen AWT, Swing, JavaFX & SWT 6
G paintComponents zerstückelt Bild AWT, Swing, JavaFX & SWT 0
C 2D Grafik ein Bild soll permanent durchlaufen AWT, Swing, JavaFX & SWT 2
1 Textfield: jede Buchstabe ein Bild AWT, Swing, JavaFX & SWT 2
C Bild Koordinaten AWT, Swing, JavaFX & SWT 6
M Bild aus JLabel resizen und speichern AWT, Swing, JavaFX & SWT 0
M Bild in JPanel mit Maus einfügen AWT, Swing, JavaFX & SWT 0
B JPanel und png-Bild AWT, Swing, JavaFX & SWT 2
B Swing Bild von Webseite herunterladen, diese dann in JList anzeigen. AWT, Swing, JavaFX & SWT 1
O 2D-Grafik Bild abgeschnitten nach Rotation mit Affine Transform und Hintergrund Schwarz AWT, Swing, JavaFX & SWT 8
A Swing Malprogramm Bild speichern? AWT, Swing, JavaFX & SWT 9
U Bild innerhalb hatml code anzeigen AWT, Swing, JavaFX & SWT 5
Y JavaFX Bild speichern und Pfad dazu abspeichern AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben