BSI11-POOII-Aula002

Propaganda
PROGRAMAÇÃO ORIENTADA A
OBJETOS II
- IDE NETBEANS
Prof. Angelo Augusto Frozza, M.Sc.
[email protected]
ROTEIRO
2.
Programação visual com a IDE Netbeans
y
Projetos
y
Tipos de projetos
y
Desenvolvimento de aplicações rápidas (RAD)
y
Desenvolvimento visual
APLICAÇÕES GRÁFICAS - GUI
| Primeiro
faça uma análise das seguintes
interfaces:
y
y
y
ConsoleTeste.java
Calculadora.java
FrameCalculadora.java
Em se tratando de usabilidade,
qual das interfaces é a mais
atraente e amigável?
APLICAÇÕES GRÁFICAS COM A SWING
|
GUI – Graphical User Interface
y
|
Oferece uma interface mais simples e
intuitiva para o usuários.
Cada Sistema Operacional pode oferecer
GUIs com aparências distintas:
y
y
y
y
COM da Microsoft;
Presentation da IBM;
NeWS da Sun;
X-Window System da MIT
APLICAÇÕES GRÁFICAS COM A SWING
|
Java no desenvolvimento de aplicações
gráficas:
y
Oferece capacidades únicas que, sem
modificações ou recompilação, podem ser
executadas em diferentes ambientes gráficos.
COMPONENTES E A SWING
|
Componente GUI:
y
É um objeto visual com o qual o usuário
pode interagir através do teclado ou mouse;
y
São também chamados de widgets –
Window gadgets – dispositivos de
janela:
Botões
| Caixa de entrada de texto
| Caixas de lista
| Caixas de seleção
| Barras de rolagem
| etc.
|
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:
y
Renderização e obtenção de informações do
sistema gráfico.
CONSTRUÇÃO
|
DE UMA
APLICAÇÃO GRÁFICA
Passos da implementação:
y
1º Æ Instanciação do componente
selecionado;
y
2º Æ Adição do componente na interface;
y
3º Æ Registro dos métodos processadores de
eventos.
CONSTRUÇÃO
|
DE UMA
APLICAÇÃO GRÁFICA
1º Æ Instanciação do componente
y
Cada componente a ser adicionado na
interface deve ser instanciado
individualmente.
y
Exemplo:
private Button bt1;
private Button bt2;
...
bt1 = new Button(“Ok”);
bt2 = new Button(“Cancelar”);
CONSTRUÇÃO
|
DE UMA
APLICAÇÃO GRÁFICA
2º Æ Adição do componente na
interface
y
Cada um dos componentes deve ser
adicionado em um container;
É necessário especificar o posicionamento do
componente através de um gerenciador de
layout;
y
Exemplo:
y
add(bt1);
//uso do layout default
add(bt2, BorderLayout.SOUTH) // uso do Border Layout
CONSTRUÇÃO
|
DE UMA
APLICAÇÃO GRÁFICA
3º Æ Registro dos métodos
processadores de eventos:
y
Narrações das interações do usuário com a
aplicação através do teclado ou mouse;
y
Devem ser adicionados métodos especiais
(event listeners) na aplicação para processar
a interação do usuário;
y
Os métodos devem ser associados aos
componentes que reagem à interação com o
usuário.
CONSTRUÇÃO
|
DE UMA
APLICAÇÃO GRÁFICA
3º Æ Registro dos métodos
processadores de eventos (continuação):
y
Exemplo:
bt1.addActionListener(this);
bt2.addActionListener(new ButtonHandler());
CONSTRUÇÃO
DE UMA
APLICAÇÃO GRÁFICA
COMPONENTES BÁSICOS
•Frame (janela completa)
•Contêineres
9 Jpanel (Painel)
9...
•Controles
9JButton (botão)
9JCheckbox (caixa de opção)
9JScrollBar (barra de rolagem)
9JTextField (caixa de entrada de texto)
9...
•Janelas
9JDialog (janela de diálogo)
9JScrollPane (lista)
9...
•Menus
9JMenuBar (barra de menus)
ELEMENTOS DA INTERFACE
JFRAME
Pacote: javax.swing
| Classe: JFrame
|
|
É o principal/primeiro componente;
|
Utilizado para definir o espaço principal no qual
estará a interface com o usuário;
|
Principais propriedades:
y
title
CONTAINERS
Pacote: javax.swing
| Classe: JPanel
|
Todo componente de uma interface deve ser
colocado dentro de um container;
| Existems vários tipos de containers disponíveis;
|
|
Principais propriedades:
y
background
border
y
name (nome da variável)
y
JLABEL
Pacote: javax.swing
| Classe: JLabel
|
Veja o Exemplo:
FrameLabel.java
|
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.
JLABEL
Pacote: javax.swing
| Classe: JLabel
|
|
Principais propriedades:
y
name (nome da variável)
y
text
border
y
JLABEL
|
|
Existem métodos adequados para capturar e
modificar o conteúdo de um Label:
y
getText() – captura o conteúdo do rótulo
y
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
JTEXTFIELD
Pacote: javax.swing
| Classe: 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
JTEXTFIELD
Pacote: javax.swing
| Classe: JTextField
|
|
Principais propriedades:
y
name (nome da variável)
y
text
JCOMBOBOX
Pacote: javax.swing
| Classe: JComboBox
|
|
Permite criar caixas de seleção;
|
Principais propriedades:
y
name (nome da variável)
y
model
JBUTTON
Pacote: javax.swing
| Classe: 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
JBUTTON
Pacote: javax.swing
| Classe: JButton
|
|
Principais propriedades:
y
name (nome da variável)
y
text
JBUTTON
|
Para tratar um evento é necessário:
y
Implementar a classe ActionListener
public class FrameBotao extends Frame
implements ActionListener
{..}
y
Adicionar o Listener ao objeto passível de sofrer uma
ação:
button1 = new Button(“Pressione aqui”);
button1.addActionListener(this);
add(button1);
JBUTTON
|
Para tratar um evento é necessário
y
(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 evento
if (e.getSource() == button1) {
count++;
label1.setText("Botão já foi usado " + count + "
vez(es).");
}
}
JBUTTON
|
E como seria o tratamento de dois (2) botões?
y
Pode ser feito através do mesmo actionPerformed
Veja o Exemplo:
FrameButton2.java
JBUTTON
|
E como seria o tratamento de dois (2) botões?
y
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);
}
JBUTTON
|
E como seria o tratamento de dois (2) botões?
y
Pode ser feito através do mesmo actionPerformed
Cuidado:
if (e.getSource() == tratar
button1)
{ eventos (de vários objetos)
muitos
count++;
no mesmo método actionPerformed,
label1.setText("Botão já foipode
usado
" + count
+ " vez(es).");
tornar
o código
}
muito extenso
e ilegível.
if (e.getSource() == button2) {
JOptionPane.showMessageDialog(null,"Esta aplicação será finalizada...");
System.exit(0);
}
Download