Swing JPanel Größe anpassen

Lucaaa

Bekanntes Mitglied
Hallo!
Ich habe eine Liste aus JPanels die in einer Schleife nacheinander hinzugefügt, und untereinander angeordnet werden.
Nun möchte ich, das sich die Breite beim verändern der Fenstergröße anpasst.
(LayoutManager ?) Aber wie?

(Es geht um die größe von ItemPanel=

Java:
package com.ludevstudio.passwordmanager;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
public class MainPane extends JSplitPane {
 // This Class contains the main Interface.
 
 
 
 // Set params for the Pane
 public MainPane() {
  leftPanel = getLeftComponent();
  rightPanel = getRightComponent();
  
  setLeftComponent(new ManagerPanel());
  setRightComponent(new ActionsPanel());
  setDividerLocation(500);
  
 }
 
}

Java:
package com.ludevstudio.passwordmanager;
import java.awt.Dimension;
import javax.swing.BoxLayout;
import javax.swing.JPanel;
public class ManagerPanel extends JPanel{
 // This Class contains the Manager
 
 // Constructor and params
 public ManagerPanel() {
  setMinimumSize(new Dimension(400, 100));
  setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
  
  
  ItemPanel[] items = new ItemPanel[5];
  for (int i = 0; i<items.length; i++) {
   items[i] = new ItemPanel();
   add(items[i]);
  }
 }
 
 
}

Java:
package com.ludevstudio.passwordmanager;
import java.awt.Dimension;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class ItemPanel extends JPanel {
 
 
 public ItemPanel() {
 
  
  add(new JLabel("Hello World"));
  setPreferredSize(new Dimension(400, 30));  // HIER SOLL DIE GRÖSSE AUTOM. ANGEPASST WERDEN
  setMaximumSize(this.getPreferredSize());
  System.out.println(parent.getSize());
 }
 
}

Hoffe ihr könnt mir Helfen ! 🙂
 
BoxLayout eignet sich hierfür WIMRE nicht. Du brauchst etwas wie z. B. GridLayout, GridBagLayout, GroupLayout etc.
 
BoxLayout eignet sich hierfür WIMRE nicht. Du brauchst etwas wie z. B. GridLayout, GridBagLayout, GroupLayout etc.
Also ich will es folgendermaßen haben:
- Karten (Panels) mit einem Icon links, und Text rechts.
- Die Karten sollen untereinander sein, bis der Platz groß genug ist um sie neben einander anzuordnen (Hab ich mit nem FlowLayout gemacht)
- Allerdings sollen sich die Karten bis zu einem bestimmten Punkt vergrößern lassen. D.h. Wenn alle Karten untereinander sind, und das Fenster größer gezogen wird, sollen die Karten solange größer werden (immer noch untereinander) bis der Platz ausreicht, um sie in der Originalgröße nebeneinander zu setzen.
Ich hoffe das war einigermaßen verständlich
 

Neue Themen


Zurück
Oben