Hour 14. Laying Out a User Interface

When you begin designing graphical user interfaces for your Java programs, one obstacle you face is that your components can move around. Whenever a container changes size—such as when a user resizes a frame—the components within the container will rearrange themselves to fit within its new dimensions. This fluidity works in your favor, because it takes into account the differences in how interface components are displayed on different operating systems. On the same Java program, a clickable button might look different in Windows than it does in Linux or Mac OS. This is a departure from languages such as Microsoft Visual Basic, where you specify exactly where a component will appear and what it looks like. Components are organized in an interface by using a set of classes called layout managers. These classes define how components will be displayed within a container—during the previous hour, you used the FlowLayout class to arrange components. Each container in an interface can have its own layout manager. The following topics will be covered:

  • Creating a layout manager
  • Assigning a layout manager to a container
  • Using panels to organize components in an interface
  • Working with unusual layouts
  • Creating a prototype for a Java app