import br.ufpe.cin.miniJava.gui.Button;
import br.ufpe.cin.miniJava.gui.Window;

public class MinhaPrimeiraClasse {

	/* Primeira classe feita no curso de IP,
	 * para ilustrar os conceitos básicos de
	 * programação em Java.
	 */

	// Comentário de uma única linha! 
	// Só para ilustrar...
	
	/* Este método cria uma janela contendo 
	 * alguns componentes gráficos, e define
	 * algumas propriedades destes componentes,
	 * como tamanho, título, etc.
	 */
	public static void main(String[] args) {		
		/* Declarações de variáveis, aparecem
		 * sempre antes do uso das variáveis.
   		 */
		Window janela;		
		Button botao;
		
		/* Comandos de criação de objeto, 
		 * atribuição e chamada de métodos.
		 * 
		 * Primeiro cria-se o objeto para 
		 * depois executar métodos nesses 
		 * objetos.
		 * 
		 * Dependendo do que os métodos fazem,
		 * a ordem de chamada dos métodos
		 * importa e dá resultados diferentes.
		 * Isso não acontece com os métodos 
		 * setSize, setTitle e setText.
		 */
		janela = new Window();
		janela.setSize(500,400);
		janela.setTitle("Minha Janela");
		
		botao = new Button();
		botao.setText("Calc");
		botao.setSize(80,60);
		
		/*  Poderia ser 
		 		botao.setSize(80,30 * 2);
		 	ou qualquer outra expressão que
		 	resulte em 60.
	    */	
		
		/* Feito por Daniel, só para exercitar.
		   Para ser considerado por Java, teria
		   que estar fora do comentário.
		
		Button botao2;
		botao2 = new Button();
		botao2.setText("daniel");
		botao2.setSize(80,60);
		
		janela.include(botao2,100,145);
		*/
	
		janela.include(botao,100,80);		
		janela.setVisible(true);
		
		/*
		 * O método setVisible só deve ser
		 * chamado depois da janela ter sido
		 * completamente montada, caso contrário
		 * o usuário pode ver os componentes
		 * sendo inseridos, passo-a-passo na
		 * janela. Neste caso, e em vários 
		 * outros, a ordem de chamada dos 
		 * métodos importa.
		 */
	}
}