Baixe o app para aproveitar ainda mais
Prévia do material em texto
Desenvolvimento de Sistemas – aula 02 Prof. Erick Jeronimo Técnicas para anexar controles às janelas • Obter uma referência do Objeto Container da classe JFrame; • Definir a forma como os componentes serão dispostos na tela; • Efetuar chamadas ao método add da classe Container para adicionar os componentes; Atividade • Crie uma janela com dois botões: – O primeiro deve solicitar o nome do usuário, e logo em seguida o cumprimente; – O segundo deve perguntar se o usuário deseja encerrar o aplicativo, em caso positivo, feche as janelas, em caso negativo, mantenha a janela principal ativa; Gerenciadores de Layout • FlowLayout: É o mais simples e o padrão de todos os JPanels. Organiza os componentes um ao lado do outro em linha, da esquerda para a direita, usando o tamanho que você definiu ou, se não houver definição, seus tamanhos preferenciais. Quando a linha fica cheia, uma nova linha é criada. Gerenciadores de Layout • BoxLayout: Organiza os componentes sequencialmente pelo eixo X ou eixo Y (indicamos isso no construtor) usando os tamanhos preferenciais de cada componente. • GridLayout: Organiza os componentes em um grid (tabela) com várias linhas e colunas (podemos definir no construtor). Os componentes são colocados um por célula e com tamanho que ocupe a célula toda. Gerenciadores de Layout • GridBagLayout: É o mais complexo layout e é baseado no GridLayout. A idéia também é representar a tela como um grid com linhas e colunas. Mas no GridBagLayout podemos posicionar elementos ocupando várias células em qualquer direção, o que permite layouts mais customizados, mas também causa um custo muito alto de manutenção. A definição de onde deve ser colocado cada componente é feita através de restrições (GridBagConstraints) passadas ao método add. Gerenciadores de Layout • BorderLayout: Divide o container em cinco regiões: Norte, Sul, Leste, Oeste e Centro. Ao adicionar um componente, indicamos a região onde queremos adicioná-lo. Na hora de renderizar, o BorderLayout primeiro coloca os componentes do Norte e Sul em seus tamanhos preferenciais; depois, coloca os do Leste e Oeste também nos tamanhos preferenciais; por último, coloca o componente do Centro ocupando todo o restante do espaço. FlowLayout Constante Efeito FlowLayout.CENTER Faz com que os componentes sejam alinhados ao centro da lista de componentes. FlowLayout.LEFT Alinha os componentes a partir da margem esquerda do gerenciador. FlowLayout.RIGHT Alinha os componentes a partir da margem direita do gerenciador. Utilizando a JLabel para definir Rótulos • Classe específica para utilização de rótulos; • Podemos utilizar identificar campos de um formulário, ou simplesmente escrever algum texto na nossa janela. Construtores • JLabel nomeLabel = new JLabel(“Nome:”); • JLabel nomeLabel = new JLabel(icone); • JLabel nomeLabel = new JLabel(“Nome:”, icone, JLabel.LEFT); Atividade • Crie uma janela com a cor de fundo branca. Esta janela deve conter um rótulo (label), uma caixa de texto e um botão; • Use-a para solicitar o nome do usuário, e em seguida o cumprimentar; • Para alterar a cor de fundo de uma janela, utilize o método setBackground() e as constante Color.WHITE; • Utilize o gerenciador de layouts FlowLayout; Imagem • Para adicionar uma imagem a um JLabel, utilizamos a Classe ImageIcon; – ImageIcon imagem = new ImageIcon(“usuario.gif”); – JLabel rotulo = new JLabel(icone); Cor do Texto • A cor do texto de um objeto JLabel, pode ser definida através de uma chamada ao método setForeground da Classe JComponent: – setForeground(Color cor); – Ex: rotulo.setForeground(Color.red); Fonte • Para definir a fonte de um rotulo, temos o método setFont, que recebe um objeto da classe Font como parâmetro. – Font(String nome, int estilo, int tamanho); – rotulo.setFont(new Font(“TimesRoman”, Font.BOLD, 14)); Eventos • A classe JLabel não possui suporte a eventos de actionListener; • Seu objetivo é apenas exibir textos, não disparar ações; • Temos disponíveis apenas eventos de mouse; Eventos • rotulo.addMouseListener (new MouseAdapter() { – public void mouseClicked(MouseEvent evento) { – } – }); Eventos • rotulo.addMouseListener (new MouseAdapter() { – public void mouseEntered(MouseEvent evento) { – } – public void mouseExited(MouseEvent evento) { – } – }); Atividade • Crie uma janela que contenha um JLabel; • Adicione um evento de clique de mouse a este JLabel; • A cada clique do mouse sobre este rótulo, exiba quantos cliques este rótulo já recebeu até então. Atividade • Crie uma janela que contenha um JLabel; • Adicione um evento de passar o mouse sobre este JLabel; • Quando o ponteiro do mouse estiver neste rótulo, altere sua fonte, tamanho e cor; • Quando o mouse sair, altere-a novamente;
Compartilhar