// Autor: Fábio Dalla Vecchia - RA:981091 package pckInterface; // Arquivo: // InterfaceLayout.java // // Objetivo: // Implementacao de um controlador de posicionamento de componenetes // para permitir colocar os componenetes do Applet em qualquer lugar // da tela dando maior flexibilidade na interface com o usuario // // Compilador: javac 1.3 // Autor: Fábio Dalla Vecchia - RA:981091 // Última Atualização: 15-Jun-2001 // import java.awt.*; // Classe: InterfaceLayout // Autor: Fábio Dalla Vecchia - RA:981091 // OBS: Todos os métodos padrão da estrutura Layout serão sobreescritos public class InterfaceLayout implements LayoutManager { // Construtor // Autor: Fábio Dalla Vecchia - RA:981091 public InterfaceLayout() { } // Método para adicionar os componentes // Autor: Fábio Dalla Vecchia - RA:981091 public void addLayoutComponent( String name,Component comp ) { // apenas sobreescreve método (não precisa fazer nada) } // Método para remover componentes // Autor: Fábio Dalla Vecchia - RA:981091 public void removeLayoutComponent( Component comp ) { // apenas sobreescreve método (não precisa fazer nada) } // Método para acertar a dimensão do controlador em função da // dimensão dos componentes (e suas posições) para que seja // possível visualizar todos eles no espaço destinado ao // controlador de layout // Autor: Fábio Dalla Vecchia - RA:981091 public Dimension preferredLayoutSize( Container parent ) { Insets insets = parent.insets(); int numero = parent.countComponents(); int largura = 0; int altura = 0; for( int i=0; i < numero; i++ ) { Component comp = parent.getComponent( i ); Dimension d = comp.preferredSize(); Point p = comp.location(); if( ( p.x + d.width ) > largura ) largura = p.x + d.width; if( ( p.y + d.height ) > altura ) altura = p.y + d.height; } return( new Dimension( insets.left + insets.right + largura, insets.top + insets.bottom + altura ) ); } // Método para controlar a dimensão mínima que deve ter o // controlador de Layout // Autor: Fábio Dalla Vecchia - RA:981091 public Dimension minimumLayoutSize( Container parent ) { Insets insets = parent.insets(); int numero = parent.countComponents(); int largura = 0; int altura = 0; for( int i=0; i < numero; i++ ) { Component comp = parent.getComponent( i ); Dimension d = comp.preferredSize(); Point p = comp.location(); if( ( p.x + d.width ) > largura ) largura = p.x + d.width; if( ( p.y + d.height ) > altura ) altura = p.y + d.height; } return( new Dimension( insets.left + insets.right + largura, insets.top + insets.bottom + altura ) ); } // Método para Reescalar os componentes a seus tamanhos // preferidos (caso isso seja possível) // Autor: Fábio Dalla Vecchia - RA:981091 public void layoutContainer( Container parent ) { int numero = parent.countComponents(); for( int i=0; i < numero; i++ ) { Component comp = parent.getComponent( i ); Dimension d = comp.preferredSize(); comp.resize( d.width,d.height ); } } }