Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Programação em Java Interface Unitins, Notas de estudo de Informática

Programação em Java

Tipologia: Notas de estudo

2013

Compartilhado em 28/05/2013

lais-morais-2
lais-morais-2 🇧🇷

1 documento

1 / 98

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Programação
3° Período
Alex Coelho
...
import javax.swing.*;
...
public class AppCadastro extends Frame{
...
TextField nome = new TextField(71);
TextField descricao = new TextField(68);
Button salvar = new Button("Salvar");
Button limpar = new Button("Limpar");
Button report = new Button("Relatório");
Button sair = new Button("Sair");
Label result = new Label();
//método construtor
public AppCadastro(){
...
painelCadastro.setLayout(new FlowLayout());
painelCadastro.add(new Label("Nome:"));
painelCadastro.add(nome);
painelCadastro.add(new Label("Descrição:"));
painelCadastro.add(descricao);
rio");
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62

Pré-visualização parcial do texto

Baixe Programação em Java Interface Unitins e outras Notas de estudo em PDF para Informática, somente na Docsity!

Programação

3° Período

Alex Coelho

... import javax.swing.*; ... public class AppCadastro extends Frame{ ... TextField nome = new TextField(71); TextField descricao = new TextField(68); Button salvar = new Button("Salvar"); Button limpar = new Button("Limpar"); Button report = new Button("Relatório"); Button sair = new Button("Sair"); Label result = new Label(); //método construtor public AppCadastro(){ ... painelCadastro.setLayout(new FlowLayout()); painelCadastro.add(new Label("Nome:")); painelCadastro.add(nome); painelCadastro.add(new Label("Descrição:")); painelCadastro.add(descricao);

rio");

Fundação Universidade do Tocantins Reitor Humberto Luiz Falcão Coelho Vice-Reitor Lívio William Reis de Carvalho Pró-Reitor de Graduação Galileu Marcos Guarenghi Pró-Reitor de Pós-Graduação e Extensão Claudemir Andreaci Pró-Reitora de Pesquisa Antônia Custódia Pedreira Pró-Reitora de Administração e Finanças Maria Valdênia Rodrigues Noleto Diretor de EaD e Tecnologias Educacionais Marcelo Liberato Coordenador Pedagógico Geraldo da Silva Gomes Coordenador do Curso Igor Yepes

EADCON – Empresa de Educação Continuada Ltda Diretor Presidente Luiz Carlos Borges da Silveira Diretor Executivo Luiz Carlos Borges da Silveira Filho Diretor de Desenvolvimento de Produto Márcio Yamawaki Diretor Administrativo e Financeiro Júlio César Algeri

Organização de Conteúdos Acadêmicos Alex Coelho Material Didático – Equipe Unitins Coordenação Editorial Maria Lourdes F. G. Aires Assessoria Editorial Marinalva do Rêgo Barros Silva Assessoria Produção Gráfica Katia Gomes da Silva Revisão Lingüístico-Textual Kyldes Batista Vicente Revisão Digital Katia Gomes da Silva Projeto Gráfico Douglas Donizeti Soares Irenides Teixeira Katia Gomes da Silva Programação Visual Douglas Donizeti Soares Katia Gomes da Silva Material Didático – Equipe Univali Coordenação Geral - Gerência de EaD Margarete Lazzaris Kleis Coordenação Técnica e Logística Jeane Cristina de Oliveira Cardoso Coordenação de Curso Luis Carlos Martins Editoração Gráfica Delinea Design Soluções Gráficas e Digitais LTDA Coordenação Editorial Charlie Anderson Olsen Larissa Kleis Pereira Logística Editorial Michael Bernardini Diagramação Michael Bernardini Ilustração Alexandre Beck

Reitor José Roberto Provesi Vice-Reitor Mário César dos Santos Procurador Geral Vilson Sandrini Filho Secretário Executivo Nilson Scheidt Pró-Reitora de Ensino Amândia Maria de Borba Pró-Reitor de Pesquisa, Pós-Graduação, Extensão e Cultura Valdir Cechinel Filho

Plano de Ensino

EmEntA

Programação visual utilizando a tecnologia Java. Biblioteca AWT (Abstract Window Toolkit). Componentes básicos: Frame, Label, Button, TextField, Panel, TextArea, List, Choice, CheckBox, CheckBoxGroup, Menus. Gerenciadores de Layout. Eventos AWT. Conexão com Banco de dados: JDBC, Tipos JDBC, Connec- tion, Statement, PreparedStatament. Applets. JasperReports e iReport.

ObjEtiVOS

  • Apresentar conceitos básicos da linguagem de programação Java para programação visual.
  • Apresentar os principais componentes utilizados para a construção de interfaces gráficas.
  • Proporcionar a compreensão aos alunos sobre a utilização de banco de da- dos em aplicações visuais utilizando componentes e conceitos de conexão.
  • Demonstrar aos alunos o potencial do desenvolvimento de aplicações visuais e sua possibilidade de interação com os usuários.
  • Demonstrar aos alunos a confecção de relatórios utilizando a tecnologia Java.

COntEúdO PrOgrAmátiCO

  • Componentes visuais básicos
    • Label
    • Button
    • TextField
    • Pane
    • TextArea
    • Choice
    • List
    • Checkbox
    • CheckboxGroup
    • Menu
  • Tratamento de eventos
  • Gerenciamento de layouts
  • Conexão com banco de dados
  • Inserção e consultas a banco de dados
  • Applets
  • Relatórios com jasperReport

Sumário

  • Aula 1 – Programação Visual em Java
  • Aula 2 – Componentes visuais
  • Aula 3 – Gerenciadores de layout e Tratadores de evento.........................
  • Aula 4 – Trabalhando com Banco de Dados............................................
  • Aula 5 – Applets Java
  • Aula 6 – Relatórios
  • Aula 7 – Estudo de Caso.......................................................................

A linguagem

Java

disponibiliza

duas

bibliotecas

para a

construção

de interfaces

gráficas,

utilizando

componentes

GUI.”

10 3º PERÍODO • SUPERiOR DE TEcnOlOgia • Univali/UniTinS

aUla 1 • PROgRaMaçãO

são necessárias modificações ou mesmo recompilação da aplicação, sendo que estas podem ser executadas em diferentes ambientes gráficos, sendo uma vantagem comercial diante das demais linguagens.

1.1 Programação Visual

Nesta aula, veremos mais a fundo os conceitos relacionados à progra- mação com interfaces visuais, apresentados na aula 5 da disciplina de pro- gramação anterior. Assim, iniciaremos esta aula apresentando um conceito geral da programação visual com Java. Podemos dizer que a utilização de componentes padronizados, como botões, campos de texto e menus, fez das interfaces gráficas um sucesso. Pela utilização de componentes visuais, é pos- sível que usuários interajam por meio de operações realizadas pelo teclado ou mouse, tornando possível com isso, entradas de dados, seleção de caixas, botões além de, acionar outras operações que tornem as aplicações interes- santes ao usuário conforme demonstrado nas aulas finais do módulo anterior.

Estes componentes também conhecidos como GUI componentes, são elementos que compõem uma interface GUI. Segundo Deitel (2005), um componete GUI é:

um objeto pelo qual o usuário interage através do mouse, do te- clado ou outra forma de entrada, como reconhecimento de voz.

A linguagem Java disponibiliza duas bibliotecas para a construção de interfaces gráficas, utilizando componentes GUI. A primeira consiste na uti- lização da biblioteca Swing, vista anteriormente, com a implementação de aplicações simples. A outra biblioteca e que será tema de nossos estudos nesta aula, consiste na biblioteca AWT ( Abstract Window Toolkit ) que é disponibi- lizada por meio da importação do pacote java.awt. No caso, a biblioteca AWT fornece diversas classes, comuns e abstratas que realizam com a utiliza- ção da JVM ( Java Virtual Machine ) a apresentação dos componentes visuais pertencentes a essa biblioteca.

A classe abstrata Component consiste na base para construção de qual- quer componente visual oferecido pela linguagem Java, por meio da utiliza- ção da AWT (DEITEL, 2005). Em discussão sobre os conceitos vinculados aos componentes, pode se afirmar que a AWT faz com que seja criada uma ge- neralização dos componentes utilizados na construção de aplicações visuais, sendo independentes da plataforma que esteja sendo utilizada, fazendo com que estas sejam sempre equivalentes, e desempenhando as mesmas funções

aUla 1 • PROgRaMaçãO

Univali/UniTinS • SUPERiOR DE TEcnOlOgia • 3º PERÍODO 11

para as quais foram destinadas e se propõem a resolver garantindo a portabi- lidade do sistema. A Sun define a Java como (SUN, 2007):

simples, distribuída, interpretada, robusta, segura, de arqui- tetura neutra, portátil, multi-funções e dinâmica.

Certo, porém o que isto significa para a construção de minhas aplicações? Isto significa que, independentemente do sistema operacional escolhido, uma mesma aplicação pode ser executada sem que o resultado final seja alterado, por exemplo, um botão sempre será compreendido como um botão pela JVM rodando seja no Linux, Windows ou mesmo Solaris, mesmo que a aparência do componente seja distinta, os princípios básicos de funcionamento e opera- ção sempre serão os mesmos (DEITEL, 2005).

1.2 Construindo uma Aplicação Gráfica

O processo inicial de uma aplicação gráfica sempre é realizado com a seleção e projeto de uma interface para o sistema, selecionando todos os com- ponentes que irão compor a tal interface, distribuindo-os da forma desejada no ambiente visual e, no caso, é mais importante definir qual a real função de cada componente e sua utilização na aplicação. O mercado fornece diversas IDEs para a construção de interfaces gráficas Java, utilizando o padrão Drag and Drop , porém como nosso intuito nesta aula consiste em fixar todos os conceitos ligados à programação visual, fica a seu critério a utilização ou não dessas ferramentas, não nos apegaremos a nenhuma IDE.

Com isso, podemos dividir a implementação de um sistema visual utilizando a linguagem Java em três etapas, como visto anteriormente: a primeira consiste na criação e instanciação dos componentes da biblioteca AWT no projeto (FLA- NAGAN, 2006). Sempre é válido mencionar que em Java todos os componentes são classes. Sendo assim, um componente é instanciado da mesma forma como uma variável, ou mesmo atributo, como melhor você estiver familiarizado.

Saiba mais Existem diversas IDEs e plugins para ferramentas de desenvolvimento para aplicações gráficas em Java. Dentre estas, as mais utilizadas consistem no Eclipse, Netbeans, Sun One e JBuilder. Estas colaboram com a aceleração do processo de desenvolvimento e, conseqüentemente, com a redução de custos.

aUla 1 • PROgRaMaçãO

Univali/UniTinS • SUPERiOR DE TEcnOlOgia • 3º PERÍODO 13

Como podemos perceber, são utilizados diversos conceitos apresentados no módulo anterior, como o processo de instanciação e referência dos objetos ou mesmo a idéia de herança. Porém, conforme mencionado anteriormente neste módulo, iremos trabalhar com a biblioteca AWT, que difere do que já foi apresentado na aula anterior.

Por exemplo: com a utilização da biblioteca Swing, para criarmos um botão convencional, deveríamos instanciar um objeto da classe JButton. Conforme apresentado no exemplo anterior, a AWT utiliza apenas a classe Button , para que o mesmo processo seja realizado, sendo uma biblioteca nativa do Java. Mas não se preocupe, todos os conceitos e componentes conhecidos serão úteis para construções de aplicações, uma vez que a idéia geral do processo é muito semelhante.

Com isso, torna-se possível criar aplicações gráficas que utilizem os com- ponentes GUI da biblioteca AWT. Então, para que possamos criar efetivamen- te uma aplicação, é interessante que sejam conhecidos quais são os compo- nentes básicos da AWT, bem como instanciar, obviamente adicioná-los estes a interfaces, além de propor funcionalidades por meio dos eventos e interações desempenhadas pelos usuários sobre os componentes (SUN, 2007).

1.3 Componentes básicos

Como já mencionado nesta aula, a classe abstrata Component é a base para construção de qualquer componente visual, sendo que este é fornecido pela linguagem Java, por meio do pacote java.awt. Esse pacote oferece clas- ses com toda infra-estrutura necessária para criação de objetos que possuam uma representação gráfica que podem ser exibidos em uma interface que pode reagir a interações de um usuário (DEITEL, 2005).

Assim como no conceito de interfaces apresentado no módulo anterior, as classes abstratas não podem ser instanciadas diretamente, mas podem ser utilizadas como um modelo para a criação de novos componentes, sendo estas novas classes derivadas desta, permitindo um tratamento generalizado dos componentes que são oriundos do conceito de polimorfismo. Todos os componentes gráficos que serão aqui apresentados são baseados no pacote java.awt, não se esqueça.

A classe Component também é base para construção da classe abstrata Container , que consiste em uma área na qual outros componentes podem ser

14 3º PERÍODO • SUPERiOR DE TEcnOlOgia • Univali/UniTinS

aUla 1 • PROgRaMaçãO

adicionados e posicionados a interface. No caso, qualquer classe que herda da classe Container pode agregar a seu escopo outros componentes. Alguns exem- plos de containers de componentes são as classes Frame e Window , que consistem em janelas, além da classe Panel que é um painel (DEITEL, 2005).

Pensando sobre o assunto

Assim como qualquer outra classe, são fornecidos diversos métodos pela classe Component, fornecendo formas de acesso às funcionalidades desta. Sugerimos uma verificação prévia deste, uma vez que todos são herdados pelos demais componentes.

Então vamos ao que interessa, vamos apresentar os principais componen- tes da AWT, conhecendo suas principais aplicações e utilizando, para isso, a construção de pequenos exemplos. Nosso primeiro componente a ser explora- do consiste no Frame.

1.3.1 Componente frame

O componente Frame consiste em uma classe responsável pela construção de janelas para aplicações gráficas que disponibiliza uma barra de título e bordas. Como esta é uma subclasse da classe Container, conforme mencio- nado, esta pode conter em seu escopo outros componentes, sendo que esta consiste em sua finalidade principal. Outro detalhe que deve ser levado em consideração é o alinhamento dos componentes dentro do Frame instanciado, sendo por definição o alinhamento default BorderLayout para os compo- nentes que são adicionados (FILHO, 2005). Ademais, o componente Frame, também implementa a interface MenuContainer, possibilitando que possam ser associados a estes componentes de menu associados à janela. Todos estes componentes serão explorados mais profundamente no decorrer desta aula.

Geralmente, o componente Frame consiste na base para a criação de aplicações gráficas, sendo que são feitas especificações da classe Frame, criando, assim, além da janela a ser utilizada, um container para os compo- nentes desta janela, através da utilização de seu método construtor (DEITEL, 2005). Vamos criar nosso exemplo utilizando tais conceitos; então, transcreva o exemplo a seguir e execute-o.

16 3º PERÍODO • SUPERiOR DE TEcnOlOgia • Univali/UniTinS

aUla 1 • PROgRaMaçãO

Vamos verificar como ficará nossa classe FrameExemplo, após a definição de que esta passará a implementar a interface WindowListener. É interessante observar os métodos que devem ser ao menos declarados, devido à utilização da interface, bem como a importação do pacote java.event, sendo que este será detalhado na 3ª aula. Assim, faça as alterações na classe conforme é apresentado no quadro abaixo e execute seu programa.

// FrameExemplo.java import java.awt.; import java.awt.event.; public class FrameExemplo extends Frame implements WindowListener{ // metodo construtor public FrameExemplo (){ super(“Titulo: Janela Exemplo”); setSize(50, 100); setLocation(100, 100); addWindowListener(this); } // metodo executavel static public void main(String args[]){ FrameExemplo janela = new FrameExemplo(); janela.setVisible(true); } // metodos listeners public void windowClosing(WindowEvent e){ System.exit(0); } public void windowClosed(WindowEvent e){} public void windowIconified(WindowEvent e){} public void windowOpened(WindowEvent e){} public void windowDeiconified(WindowEvent e){} public void windowActivated(WindowEvent e){} public void windowDeactivated(WindowEvent e){} }

Assim, conseguimos fazer com que a nossa janela passe a escutar as mensagens vindas do sistema operacional, fazendo com que a interação do usuário junto a nossa janela possa gerar uma reação desta. Todos os compo- nentes da AWT possuem métodos especiais que tratam essas interações entre os usuários e o componente.

Certo, pessoal? Então vamos agora a nosso segundo componente que pode ser agregado à nossa janela, enriquecendo nossos programas.

aUla 1 • PROgRaMaçãO

Univali/UniTinS • SUPERiOR DE TEcnOlOgia • 3º PERÍODO 17

1.3.2 Componente label

Nesta subseção, iremos apresentar o componente Label , que, conforme mencionado, pode ser agregado ao componente Frame, apresentado, assim, rótulos de texto, ou simplesmente legendas. Este, por sua vez, pode ser utiliza- do em qualquer componente que seja do tipo container, exibindo apenas uma linha, sendo que esta não permite alteração. Diversos métodos podem ser aces- sados para uma instância da classe Label, porém, com certeza, os mais utiliza- dos são os métodos construtores, nos quais já podem ser definidos textos que serão apresentados dentro das interfaces gráficas criadas com a classe Frame.

Outra característica que é muito utilizada na instanciação de objetos do tipo Label consiste na utilização das constantes para a definição de seu alinhamento. São disponibilizadas três constantes: Label.LEFT, Label.CENTER e Label.RIGHT. Então vamos a outro exemplo para uma pequena demonstração deste compo- nente, no qual alteramos nosso o exemplo anterior (MANZANO, 2006).

// FrameExemplo.java import java.awt.; import java.awt.event.; public class FrameExemplo extends Frame implements WindowListener{ // metodo construtor public FrameExemplo (){ super(“Titulo: Segundo Exemplo”); setSize(50, 100); setLocation(100, 100); addWindowListener(this); } // metodo executavel static public void main(String args[]){ FrameExemplo janela = new FrameExemplo(); Label texto = new Label(“Novo Texto!”); janela.add(texto); janela.setVisible(true); } ... }

Note que no exemplo apenas criamos uma instância da classe Label, denomi- nada texto e, com a utilização de seu construtor, definimos o texto a ser apresenta- do na janela. Note que foi utilizado o método add() do objeto janela, para que o label fosse acrescentado à janela, para sua apresentação. Desta forma, qualquer objeto que deva ser apresentado deve estar adicionado à janela por meio desse método. Assim, vamos a mais um componente, sendo que este tem importância significativa para o desenvolvimento de aplicações gráficas, no caso os botões.

aUla 1 • PROgRaMaçãO

Univali/UniTinS • SUPERiOR DE TEcnOlOgia • 3º PERÍODO 19

Neste exemplo, podemos notar que, assim como na janela, na qual defini- mos qual é o seu listener, que será o responsável por receber e tratar as men- sagens, agindo sobre estas, no botão ocorre o mesmo, porém o método que realiza tal tarefa consiste no actionPerformed(), que recebe um evento de ação que é produzido pelos botões. Outro detalhe a ser percebido é a transferência do código para o construtor da classe, trazendo maior clareza do que a interfa- ce deve conter no momento de sua instanciação, facilitando a modularidade do sistema. Além disso, foi acrescentado o método setLayout() no qual foi atribuído o valor de uma nova instância da classe FlowLayout para centralizar os compo- nentes na janela. Retornaremos a este assunto na nossa 3ª aula.

Pensando sobre o assunto

Uma vez que existem os listeners para escutar e receber as mensagens do sistema de que ocorreu alguma interação sobre os componentes, é possível identificar sobre qual componente a ação foi disparada; para tanto, existe o método getSource() que nos fornece tal informação.

Podem ser criados diversos botões em uma aplicação e, uma boa prática de programação que, quando o método actionPerformed() se tornar grande e complexo é a realização de uma explosão do código em outros métodos que tratem isto de maneira mais clara.

1.3.4 Componente textfield

Vamos ao nosso último componente desta aula. Assim como o Button, este é exaustivamente utilizado em programas que fazem uso de interfaces visuais: é o componente TextField.

Através da classe TextField, obtemos uma caixa de texto, que possibilita a entrada de texto pelos usuários. Todo o conteúdo digitado dentro das caixas de texto é tratado como Strings dentro da aplicação, sendo que devem ser tratados após sua inserção conforme necessário. Assim como a Classe Button, a TextField também utiliza a interface ActionPerformed e, conseqüentemente, o método de mesmo nome para tratar entradas de dados. Porém, este só é acio- nado através da tecla “enter”. Para ações que devam ser executadas, ao digitar algum texto, deve ser utilizado o método listener addTextListener(TextListener) (DEITEL, 2005). Altere o método construtor de nossa classe FrameExemplo, conforme o quadro abaixo e execute-o.

20 3º PERÍODO • SUPERiOR DE TEcnOlOgia • Univali/UniTinS

aUla 1 • PROgRaMaçãO

// FrameExemplo.java import java.awt.; import java.awt.event.; public class FrameExemplo extends Frame implements WindowListener, ActionListener{ // metodo construtor public FrameExemplo (){ super(“Titulo: Botão Exemplo”); Label texto = new Label(“Para sair aperte o botão!”); Button botao = new Button(“Sair”); TextField caixaDeTexto = new TextField(“”, 30); setSize(250, 120); setLocation(300, 300); addWindowListener(this); setLayout(new FlowLayout()); botao.addActionListener(this); add(texto); add(caixaDeTexto); add(botao); } ... }

Tanto o componente Label quanto o TextField podem ter seu conteúdo alterado, bem como recuperado pelos métodos setText() e getText(), respectivamente. Dessa maneira, finalizamos nossa 1ª aula. Façam as atividades para uma melhor fixação dos conceitos e componentes apresentados até aqui. Nos vemos na próxima aula.

Saiba mais

É mais que interessante, é de vital importância para que suas aplicações sejam bem sucedidas e que se tenha domínio sobre os métodos disponibili- zados pela classe TextField. Para tanto, sugerimos a leitura do javadoc deste importante componente da programação visual Java.

Síntese da aula

Nesta aula, apresentamos os conceitos básicos relacionados à programação visual com a utilização da tecnologia Java, bem como alguns componentes e tratadores de eventos para uma maior interação entre usuários e sistema. Apren- demos como criar janelas utilizando a classe Frame, além de criar textos estáticos que não podem ser alterados diretamente pelos usuários, no caso as legendas através da classe Label. Ademais, foram apresentados os componentes Button e TextField para a criação de botões e a caixa de texto respectivamente.