Hallo,
ich habe ein Problem mit der Positionierung eines JPanels auf einem anderen JPanel.
Ich versuche es mal so genau wie möglich zu beschreiben.
Ich habe einen JFrame (Größe: 1200x850) mit einer JMenuBar(Größe: Breite des Frames x 25).
Als Layout habe ich bei dem Frame BorderLayout gewählt.
Im Center habe ich ein JPanel (Größe: 1200x800) und am Page_End ein weiteres JPanel (Größe: Breite des Frames x 25).
Auf das JPanel im Center setze ich nun ein weiteres JPanel mit variabler Größe (max=Größe des CenterPanels, min=240x200) und versuche es mittig zu platzieren.
Wenn des JPanel nich die maximale Größe hat, sondern etwas kleiner ist sieht das ganz gut aus.
Wenn es jedoch maximale Größe hat, dann überlappt es mit dem JPanel am Page_End und man sieht Teile nicht.
Außerdem verschwindet das Page_End-Panel, wenn ich auf das Center Panel ein Hintergrundbild setze (meine Hintergrundbilder haben alle die Größe 1200x800).
Im Anhang Bilder dazu.
Ein Auszug aus dem Frame:
Das JPanel mit variabler Größe:
So setze ich das Hintergrundbild:
Ich hoffe ihr könnt mir helfen.
Gruß
angelnc
ich habe ein Problem mit der Positionierung eines JPanels auf einem anderen JPanel.
Ich versuche es mal so genau wie möglich zu beschreiben.
Ich habe einen JFrame (Größe: 1200x850) mit einer JMenuBar(Größe: Breite des Frames x 25).
Als Layout habe ich bei dem Frame BorderLayout gewählt.
Im Center habe ich ein JPanel (Größe: 1200x800) und am Page_End ein weiteres JPanel (Größe: Breite des Frames x 25).
Auf das JPanel im Center setze ich nun ein weiteres JPanel mit variabler Größe (max=Größe des CenterPanels, min=240x200) und versuche es mittig zu platzieren.
Wenn des JPanel nich die maximale Größe hat, sondern etwas kleiner ist sieht das ganz gut aus.
Wenn es jedoch maximale Größe hat, dann überlappt es mit dem JPanel am Page_End und man sieht Teile nicht.
Außerdem verschwindet das Page_End-Panel, wenn ich auf das Center Panel ein Hintergrundbild setze (meine Hintergrundbilder haben alle die Größe 1200x800).
Im Anhang Bilder dazu.
Ein Auszug aus dem Frame:
Java:
//Einstellungen beim Frame
this.setSize(new Dimension(30 * 40, 20 * 40 + menuSize + infoBarSize));
this.setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - getSize().width) / 2, (Toolkit.getDefaultToolkit().getScreenSize().height - getSize().height) / 2);
this.setVisible(true);
this.setLayout(new BorderLayout());
this.setJMenuBar(menu);
menu.setPreferredSize(new Dimension(this.getWidth(), 25));
this.setResizable(false);
JPanel background = new JPanel();
background.setPreferredSize(new Dimension(30 * 40, 20 * 40));
background.setLayout(null);
background.setBackground(Color.black);
GameboardGUI field = new GameboardGUI(this);
background.add(field);
this.add(background, BorderLayout.CENTER);
this.add(infoBar, BorderLayout.PAGE_END);
Das JPanel mit variabler Größe:
Java:
this.setSize(new Dimension(gameboard.getCols() * 40, gameboard.getRows() * 40));
this.setLocation((Frame.getWidth() - getSize().width) / 2, ((Frame.getHeight() - getSize().height - infoBarHeight - 25) / 2));
this.setVisible(true);
So setze ich das Hintergrundbild:
Java:
background.setBorder(BorderFactory.createMatteBorder(30 * 40, 20 * 40, 30 * 40, 20 * 40, new ImageIcon("backgroundImage.jpg")));
Ich hoffe ihr könnt mir helfen.
Gruß
angelnc