java-forum.org - Java programmieren aus Leidenschaft
Java 6 Einstieg und professioneller Einsatz
Alter Preis: 34,90 EUR
Jetzt: 0,00 EUR

zzgl. Versandkosten

Zurück   java-forum.org - Java programmieren aus Leidenschaft > Java-Forum FAQs > FAQ - Übersicht > Java-FAQ Beiträge > Bilder, GUI und was damit zusammenhängt

Antwort
Themen-Optionen Thema durchsuchen Ansicht
Alt 29.11.2010, 10:49   #1 (permalink)
Java-Forum Team
Site Operator
 
Benutzerbild von L-ectron-X
 
Registriert seit: 24.04.2004
Fachbeiträge: 11.938
Abgegebene Danke: 47
Erhielt 566 Danke für 529 Beiträge
Standard Das BorderLayout

Das BorderLayout

...wird bspw. standardmäßig von JFrame , JDialog und JApplet verwendet.
Es besteht aus 5 Bereichen, in denen jeweils eine Komponente platziert werden kann.
Die Bereiche sind mit Himmelsrichtungen bezeichnet, um die möglichen Positionen für Komponenten anzugeben.


Layout-Strategie
  • Das BorderLayout richtet das Hauptaugenmerk auf die Komponente, die im CENTER-Bereich positioniert wird. Diese Komponente erhält unabhängig von ihrer eingestellten Standardgröße (PreferredSize) den maximalen Platz in der Mitte des BorderLayouts, abhängig vom restlichen verfügbaren Platz, den die anderen Komponenten lassen.
  • Von der im NORTH- oder SOUTH-Bereich abgelegten Komponente wird vom BorderLayout nur die Höhe der PreferredSize berücksichtigt. Die Breitenangabe wird ignoriert, die Komponente wird also auf die gesamte Breite des BorderLayouts ausgedehnt.
  • Von der im EAST- oder WEST-Bereich abgelegten Komponente wird vom BorderLayout nur die Breite der PreferredSize berücksichtigt. Die Höhenangabe wird ignoriert, die Komponente wird also auf die verfügbare Höhe der Randbereiche des BorderLayouts ausgedehnt.

Folgendes Bildes zeigt ein BorderLayout mit vollständig belegten Layoutbereichen.


Hier wurden die Bereiche des BorderLayout mit Buttons belegt, um sie sichtbar zu machen und die Strategie der Anordnung zu verdeutlichen.

Der Code zu dieser Darstellung sieht folgendermaßen aus:
Java Code: Quelltext in neuem Fenster öffnen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.awt.*;
import javax.swing.*;
 
public class BorderLayoutDemo  {
  public BorderLayoutDemo() {
    JFrame frame = new JFrame("BorderLayoutDemo");
    frame.setSize(600, 450);
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    
    //frame.setLayout(new BorderLayout()); //Tipp: Auf das explizite Setzen des BorderLayouts kann verzichtet werden.
    
    JButton north = new JButton("NORTH");
    JButton south = new JButton("SOUTH");
    JButton east = new JButton("EAST");
    JButton west = new JButton("WEST");
    JButton center = new JButton("CENTER");
    
    north.setPreferredSize(new Dimension(30, 100)); //Angabe für Breite wird vom BorderLayout ignoriert
    frame.add(north, BorderLayout.NORTH);
    
    south.setPreferredSize(new Dimension(30, 100)); //Angabe für Breite wird vom BorderLayout ignoriert
    frame.add(south, BorderLayout.SOUTH);
    
    east.setPreferredSize(new Dimension(100, 30)); //Angabe für Höhe wird vom BorderLayout ignoriert
    frame.add(east, BorderLayout.EAST);
    
    west.setPreferredSize(new Dimension(100, 30)); //Angabe für Höhe wird vom BorderLayout ignoriert
    frame.add(west, BorderLayout.WEST);
    
    center.setPreferredSize(new Dimension(30, 30)); //Angaben für Breite und Höhe werden vom BorderLayout ignoriert
    frame.add(center, BorderLayout.CENTER);
 
    frame.setVisible(true);
  }
  
  public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        new BorderLayoutDemo();
      }
    });
  }
}
Hier ist deutlich zu erkennen, welche Angaben von Standardgrößen für Komponenten (PreferredSize) vom LayoutManager ignoriert und entsprechend seiner Strategie der Anordnung von Komponenten umgesetzt werden.
Eine Standardgröße kann optional festgelegt werden.


Zusammenfassend kann man sagen, dass das BorderLayout für den
  • NORTH- und SOUTH-Bereich
    die Höhe des Bereiches an den Platz, den die darin liegende Komponente zur vollständigen Anzeige benötigt, anpasst. Eine eventuelle Angabe der Breite der Komponente wird ignoriert, sie wird auf die Gesamtbreite des BorderLayouts ausgedehnt.
  • EAST- und WEST-Bereich
    die Breite des Bereiches an den Platz, den die darin liegende Komponente zur vollständigen Anzeige benötigt, anpasst. Eine eventuelle Angabe der Höhe der Komponente wird ignoriert, sie wird auf die verfügbare Maximalhöhe des Bereichs ausgedehnt.
  • CENTER-Bereich
    und der darin liegenden Komponente den restlichen Platz zuweist und diese in Breite und Höhe auf das Maximum ausdehnt.
    Dabei werden auch hier die eventuell voreingestellten Standarddimensionen der Komponente ignoriert.


Weitere Parameter für die Einstellung

Per Konstruktor oder über den Aufruf der Methoden setHgap() und setVgap() lassen sich noch Werte für einen Abstand zwischen den Komponenten im Layout einstellen.
Mit verschachtelten BorderLayouts lassen sich bereits viele Layouts von GUIs abdecken.

Weiterführendes Material
L-ectron-X ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Instanzieren und Zuweisen vom BorderLayout an Container nicht notwendig ? XFlipX AWT, Swing, JavaFX & SWT 4 08.10.2009 07:01
AWT, Dubiose Ausgabe BorderLayout onebugarmy Java Basics - Anfänger-Themen 2 16.08.2009 13:03
Borderlayout und Bild in Applet einfügen hmichl Deployment 4 18.11.2007 09:51
Probleme mit BorderLayout Gast AWT, Swing, JavaFX & SWT 1 27.06.2007 21:09
Ist BorderLayout "voreingestellt" ? branco Java Basics - Anfänger-Themen 1 18.01.2007 22:32


Lesezeichen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:36 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de