%% -*- mode: latex; TeX-master: "informatik.tex"; -*-

\begin{slide}{(Bevorzugte) Abmessungen}

\kopf{$ $Id: sizes.tex,v 1.1 2006-10-09 13:24:19 waldmann Exp $ $}

Der Typ \verb|Dimension| beschreibt Rechtecke.

(die meisten) Komponenten haben \emph{fließende} Abmessungen
(d. h. können in verschiedenen Größen dargestellt werden).

Jede Komponente hat Methoden
\begin{verbatim}
public Dimension getPreferredSize ();
public Dimension getMinimumSize ();
public Dimension getMaximumSize ();
\end{verbatim}
Ein Layout-Manager \emph{kann} 
diese \verb|Size|s seiner Komponenten berücksichtigen,

\dots und muß selbst die \verb|Size|s seines Containers ausrechnen.


\end{slide}

\begin{slide}{Management von Abmessungen}

\begin{itemize}
\item FlowLayout:
  \begin{itemize}
  \item stellt jede Komponente in preferredSize dar
  \item preferred size des Containers: alles in einer Zeile
  \item falls Container starr, dann Zeilenumbrüche
  \end{itemize}
\item GridLayout:
  \begin{itemize}
  \item Umbrüche nach festgelegter Zeilen- \emph{oder} Spalten-Zahl
    \verb|GridLayout(z,0)| oder \verb|GridLayout(0,s)|
  \item stellt alle Komponenten gleichgroß dar
  \item bestimmt dazu Maximum aller preferred sizes
  \item verkleinert/vergrößert alles so, daß es paßt
  \item preferredSize: nicht verkleinern
  \end{itemize}
\end{itemize}

\end{slide}

\begin{slide}{BorderLayout und preferred sizes}

\begin{itemize}
\item 
  Nord und Süd: Höhe ist preferred Höhe der Komponente,
\item
  West und Ost: Breite ist preferred Breite,
\item
  Mitte: was übrigbleibt
\end{itemize}

% \emph{Aufgabe}: 
% finde Darstellung (Formel) für preferredSize des Containers
% aus preferredSizes der fünf Komponenten!

\emph{Tip}: 
oft hilft BorderLayout mit nur zwei oder drei Komponenten.

\emph{Aufgabe}: 
wann ist FlowLayout innerhalb anderer Container sinnvoll? (selten!)

\end{slide}

