• Nenhum resultado encontrado

147Todos os direitos reservados a 3Way Networks

No documento Linguagem Java COMPLETA (páginas 147-149)

Linguagem de Programação Java

Seja um Profissional Aprendendo com Profissionais

www.3way.com.br 133

11.4 Componentes GUI Swing

Como o pacote AWT, o pacote Swing fornece classes para criar aplicações GUI. O pacote é encontrado em

javax.swing. A diferença principal entre esses dois é que o componente Swing é escrito inteiramente usando Java enquanto o

outro não. Como resultado, projetos GUI escritos utilizando classes do pacote Swing possuem a mesma aparência mesmo quando executado sobre plataformas completamente diferentes. Além disso, Swing fornece componentes mais interessantes.

Os nomes dos componentes de Swing são quase similares aos componentes AWT. Uma diferença óbvia é a convenção de nomes dos componentes. Basicamente, os nomes dos componentes Swing são os mesmos nomes dos componentes AWT mas com um prefixo em que é adicionado a letra J. Por exemplo, um componente no AWT é a classe Button, o mesmo componente correspondente a este no pacote Swing é a classe JButton. Descrito abaixo, está uma lista de alguns dos componentes Swing:

Componente Descrição

JComponent A classe raiz para todos os componentes Swing, excluindo containers hierarquicamente superiores.

JButton Um botão do tipo "pressionar". Corresponde a classe Button no pacote AWT.

JCheckBox Um item que pode ser marcado ou desmarcado pelo usuário. Corresponde a classe Checkbox no pacote AWT.

JFileChooser Permite ao usuário que selecione um arquivo. Corresponde a classe FileChooser no pacote AWT.

JTextField Permite a edição de uma única linha de texto. Corresponde a classe TextField no pacote AWT.

JFrame Herda e corresponde a classe Frame no pacote AWT, mas as duas são ligeiramente incompatíveis em termos de adição de componentes a esse container. É preciso pegar o conteúdo do pane atual antes de adicionar um componente.

JPanel Herança de um JComponent.É uma classe container simples. Corresponde a classe Panel no pacote AWT.

JApplet Herança da classe Applet no pacote AWT. Também ligeiramente incompatível com a classe Applet em termos de adição de componentes a esse container.

JOptionPane Herda JComponent. Fornece uma maneira fácil de exibir caixas de diálogo pop-up. JDialog Herança da classe Dialog no pacote AWT. Normalmente utilizado para informar o

usuário de alguma coisa ou alertá-lo para uma entrada. JColorChooser Herda JComponent. Permite ao usuário selecionar uma cor.

Tabela 11.7 - Alguns componentes Swing

Para a lista completa de componentes Swing, por favor recorra à documentação API.

11.4.1 Configurando Containers JFrame e JApplet

Como mencionado, os containers top-level como o JFrame e o JApplet no pacote Swing são ligeiramente incompatíveis com seus correspondentes AWT. Isso em termos de adição de componentes ao container. Ao invés de adicionar diretamente um componente ao container como nos containers AWT, é necessário primeiro pegar o conteúdo do ContentPane do container. Para fazer isso utiliza-se o método getContentPane() do container:

//atribuindo valor a variável referência Carro carro1 = new Carro();

carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização //criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

import javax.swing.*; import java.awt.*;

public class SwingDemo extends JFrame { JButton botao = new JButton("Fonte"); JLabel rotulo = new JLabel("Um botao"); public SwingDemo() {

super("Primeira Aplicação Swing"); this.setSize(300, 100);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLayout(new FlowLayout());//default BorderLayout

this.getContentPane().add(rotulo);//conteiner que recebe o componente this.getContentPane().add(botao);

this.setVisible(true); }

public static void main(String args[]) { new SwingDemo();

} }

Listagem 11.8 - JFrame

Note que o pacote java.awt ainda é importado porque os gerenciadores de layout em uso são definidos neste pacote. Aqui está um resultado demonstrativo:

Figura 11.8 - Executando SwingDemo

11.5 Manipulação de Eventos

Os componentes Swing são construídos com base no padrão de projeto denominado Model Delegate

(Modelo de Delegação). Este padrão descreve o modo como sua classe pode responder a uma interação do

usuário. Para compreender o modelo, devemos perceber a colaboração entre três componentes: 1. Event Source (Gerador de Evento) - O event source refere-se ao

componente da interface que origina o evento. Por exemplo, se o usuário pressiona um botão, o event source neste caso é o botão. 2. Event Listener/Handler (Monitor de Eventos/Manipulador) - O event

listener recebe informações de eventos e processa as interações do

usuário. Quando um botão é pressionado, o event listener pode tratá- lo exibindo uma informação útil ao usuário.

3. Event Object (Objeto Evento) - Quando um evento ocorre (por exemplo, quando o usuário interage com um componente da interface gráfica), um objeto de evento é criado. Este objeto contém todas as informações necessárias sobre o evento gerado. As informações incluem o tipo de evento, digamos, o clique do mouse. Há diversas classes de evento para diferentes categorias de ações do usuário. Um objeto de evento tem o tipo de dado de uma dessas classes.

Os componentes Swing tem uma interação do

usuário através de eventos gerados pelos

componentes através de acções do usuário

Linguagem de Programação Java

Seja um Profissional Aprendendo com Profissionais

www.3way.com.br 12

//atribuindo valor a variável referência Carro carro1 = new Carro();

carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";

Figura 2.4 – Layout Memória após inicialização //criando novo alias

Carro carro2 = carro1;

Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto

2.3 Membros de Instância

Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.

2.3.1 Invocação de Métodos

Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela

chamada de um método em um objeto usando o operador binário "." (ponto),

devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.

Os valores das variáveis em um objeto constituem

o seu estado. Dois objetos distintos têm

o mesmo estado se suas variáveis membro têm os

mesmos valores.

149

No documento Linguagem Java COMPLETA (páginas 147-149)

Documentos relacionados