Top Banner
PROGRAMAÇÃO ORIENTADA A OBJETOS II - IDE NETBEANS Prof. Angelo Augusto Frozza, M.Sc. [email protected]
30

PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

Nov 11, 2018

Download

Documents

dangdiep
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

PROGRAMAÇÃO ORIENTADA AOBJETOS II- IDE NETBEANSProf. Angelo Augusto Frozza, [email protected]

Page 2: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

ROTEIRO

2. Programação visual com a IDE Netbeans

Projetos

Tipos de projetos

Desenvolvimento de aplicações rápidas (RAD)

Desenvolvimento visual

Page 3: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

APLICAÇÕES GRÁFICAS - GUI

Primeiro faça uma análise das seguintes interfaces:

ConsoleTeste.javaCalculadora.javaFrameCalculadora.java

Em se tratando de usabilidade, Em se tratando de usabilidade, qual das interfaces é a mais qual das interfaces é a mais

atraente e amigável?atraente e amigável?

Page 4: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

APLICAÇÕES GRÁFICAS COM A SWING

GUI – Graphical User InterfaceOferece uma interface mais simples e intuitiva para o usuários.

Cada Sistema Operacional pode oferecer GUIs com aparências distintas:

COM da Microsoft;Presentation da IBM;NeWS da Sun;X-Window System da MIT

Page 5: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

APLICAÇÕES GRÁFICAS COM A SWING

Java no desenvolvimento de aplicações gráficas:

Oferece capacidades únicas que, sem modificações ou recompilação, podem ser executadas em diferentes ambientes gráficos.

Page 6: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

COMPONENTES E A SWING

Componente GUI:

É um objeto visual com o qual o usuário pode interagir através do teclado ou mouse;

São também chamados de widgets –Window gadgets – dispositivos de janela:

BotõesCaixa de entrada de textoCaixas de listaCaixas de seleçãoBarras de rolagemetc.

Page 7: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

COMPONENTES E A SWING

Java oferece uma ampla biblioteca de componentes GUI;

Os componentes estão disponíveis na forma de classes pertencentes ao pacote javax.swing;

A Swing oferece classes para:Renderização e obtenção de informações do sistema gráfico.

Page 8: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

CONSTRUÇÃO DE UMA APLICAÇÃO GRÁFICA

Passos da implementação:

1º Instanciação do componente selecionado;

2º Adição do componente na interface;

3º Registro dos métodos processadores de eventos.

Page 9: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

CONSTRUÇÃO DE UMA APLICAÇÃO GRÁFICA

1º Instanciação do componenteCada componente a ser adicionado na interface deve ser instanciado individualmente.

Exemplo:

private Button bt1;private Button bt2;...bt1 = new Button(“Ok”);bt2 = new Button(“Cancelar”);

Page 10: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

CONSTRUÇÃO DE UMA APLICAÇÃO GRÁFICA

2º Adição do componente na interface

Cada um dos componentes deve ser adicionado em um container;É necessário especificar o posicionamento do componente através de um gerenciador de layout;

Exemplo:add(bt1); //uso do layout defaultadd(bt2, BorderLayout.SOUTH) // uso do Border Layout

Page 11: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

CONSTRUÇÃO DE UMA APLICAÇÃO GRÁFICA

3º Registro dos métodos processadores de eventos:

Narrações das interações do usuário com a aplicação através do teclado ou mouse;

Devem ser adicionados métodos especiais (event listeners) na aplicação para processar a interação do usuário;

Os métodos devem ser associados aos componentes que reagem à interação com o usuário.

Page 12: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

CONSTRUÇÃO DE UMA APLICAÇÃO GRÁFICA

3º Registro dos métodos processadores de eventos (continuação):

Exemplo:

bt1.addActionListener(this);bt2.addActionListener(new ButtonHandler());

Page 13: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

CONSTRUÇÃO DE UMA APLICAÇÃO GRÁFICA

Page 14: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

COMPONENTES BÁSICOS

•Frame (janela completa)

•ContêineresJpanel (Painel)...

•ControlesJButton (botão)JCheckbox (caixa de opção)JScrollBar (barra de rolagem)JTextField (caixa de entrada de texto)...

•JanelasJDialog (janela de diálogo)JScrollPane (lista)...

•MenusJMenuBar (barra de menus)

Page 15: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

ELEMENTOS DA INTERFACE

Page 16: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

JFRAME

Pacote: javax.swingClasse: JFrame

É o principal/primeiro componente;

Utilizado para definir o espaço principal no qual estará a interface com o usuário;

Principais propriedades:title

Page 17: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

CONTAINERS

Pacote: javax.swingClasse: JPanel

Todo componente de uma interface deve ser colocado dentro de um container;Existems vários tipos de containers disponíveis;

Principais propriedades:backgroundborder

name (nome da variável)

Page 18: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

JLABEL

Pacote: javax.swingClasse: JLabel

Também chamado de rótulo de texto.

Utilizado para mostrar mensagens dentro de quaisquer componentes do tipo container;

Este tipo de componente não permite a edição de valores... É simplesmente utilizado para orientar o usuário do sistema e para mostrar resultados –é um elemento passivo.

Veja o Exemplo:FrameLabel.java

Page 19: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

JLABEL

Pacote: javax.swingClasse: JLabel

Principais propriedades:name (nome da variável)

textborder

Page 20: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

JLABEL

Existem métodos adequados para capturar e modificar o conteúdo de um Label:

getText() – captura o conteúdo do rótulo

setText(String) – atribui um novo valor ao rótulo

Outros métodos são oferecidos para manipular um Label.

Veja a API do Java:-Pacote: javax.swing-Classe: JLabel-Métodos

Page 21: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

JTEXTFIELD

Pacote: javax.swingClasse: JTextField

Caixa de entrada de texto – caixa de texto;

Permite a edição de valores;O valor sempre será no formato String;Quando houver a necessidade de tratar o valor em um formato numérico é necessário transformá-lo;

Veja o exemplo:FrameTextField.java

Page 22: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

JTEXTFIELD

Pacote: javax.swingClasse: JTextField

Principais propriedades:name (nome da variável)

text

Page 23: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

JCOMBOBOX

Pacote: javax.swingClasse: JComboBox

Permite criar caixas de seleção;

Principais propriedades:name (nome da variável)

model

Page 24: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

JBUTTON

Pacote: javax.swingClasse: JButton

São painéis rotulados com um texto.

Podem ser acionados, no sentido de provocar a execução de alguma rotina ou seqüência de comandos;Para que um botão possa responder alguma ação do usuário é necessário programar o evento (tratamento de eventos).

Veja o Exemplo:FrameButton.java

Page 25: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

JBUTTON

Pacote: javax.swingClasse: JButton

Principais propriedades:name (nome da variável)

text

Page 26: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

JBUTTON

Para tratar um evento é necessário:Implementar a classe ActionListener

public class FrameBotao extends Frameimplements ActionListener

{..}

Adicionar o Listener ao objeto passível de sofrer uma ação:

button1 = new Button(“Pressione aqui”);button1.addActionListener(this);add(button1);

Page 27: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

JBUTTON

Para tratar um evento é necessário (continuação):

Implementar o método actionPerformed() e verificar a origem do evento:

public void actionPerformed(ActionEvent e) {// o if irá testar onde ocorreu o eventoif (e.getSource() == button1) {

count++;label1.setText("Botão já foi usado " + count + "

vez(es).");}

}

Page 28: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

JBUTTON

E como seria o tratamento de dois (2) botões?Pode ser feito através do mesmo actionPerformed

Veja o Exemplo: FrameButton2.java

Page 29: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

JBUTTON

E como seria o tratamento de dois (2) botões?Pode ser feito através do mesmo actionPerformed

if (e.getSource() == button1) {count++;label1.setText("Botão já foi usado " + count + " vez(es).");

}

if (e.getSource() == button2) {JOptionPane.showMessageDialog(null,"Esta aplicação será finalizada...");System.exit(0);

}

Page 30: PROGRAMAÇÃO RIENTADA A OBJETOS II -IDE N ETBEANSfrozza/2012.1/BSI11/BSI11-POOII-Aula002... · PROGRAMAÇÃO ORIENTADA A OBJETOS II-IDE N ETBEANS Prof. Angelo Augusto Frozza, M.Sc.

JBUTTON

E como seria o tratamento de dois (2) botões?Pode ser feito através do mesmo actionPerformed

if (e.getSource() == button1) {count++;label1.setText("Botão já foi usado " + count + " vez(es).");

}

if (e.getSource() == button2) {JOptionPane.showMessageDialog(null,"Esta aplicação será finalizada...");System.exit(0);

}

Cuidado:tratar muitos eventos (de vários objetos)

no mesmo método actionPerformed,pode tornar o código

muito extensoe ilegível.