programação ii - aula 1 · 2018-06-03 · aula 1 vidal. ronnison reges1 1an alise e...

24
Programa¸c˜ ao II Aula 1 Vidal. Ronnison Reges 1 1 An´ alise e Desenvolvimento de Sistemas - Parangaba Centro Universit´ ario Est´ acio do Cear´ a 2018 Vidal. Ronnison Reges (Centro Universit´ ario Est´ Programa¸c˜ ao II 2018 1 / 24

Upload: others

Post on 03-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

Programacao IIAula 1

Vidal. Ronnison Reges1

1Analise e Desenvolvimento de Sistemas - ParangabaCentro Universitario Estacio do Ceara

2018

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 1 / 24

Page 2: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

DROPBOX

https://goo.gl/nEvz6w

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 2 / 24

Page 3: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

ROTEIRO

1 Exemplificacao de um modelo de desenvolvimento do SwingModelo de desenvolvimento do Swing

2 PRINCIPAIS GERENCIADORESTipos de Gerenciadores

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 3 / 24

Page 4: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

ROTEIRO

1 Exemplificacao de um modelo de desenvolvimento do SwingModelo de desenvolvimento do Swing

2 PRINCIPAIS GERENCIADORESTipos de Gerenciadores

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 4 / 24

Page 5: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

Modelo de desenvolvimento do SwingInterfaces Graficas

O Java fornece uma infinidade de funcionalidades para provercomunicacao humano-computador.

Duas bibliotecas para desenvolver um GUI.

java.awt : Abstract Window Toolkit (classes basicas);

javax.swing : Swing Componets ? Graphical User Interface

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 5 / 24

Page 6: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

Modelo de desenvolvimento do SwingInterfaces Graficas

O Java fornece uma infinidade de funcionalidades para provercomunicacao humano-computador.

Duas bibliotecas para desenvolver um GUI.

java.awt : Abstract Window Toolkit (classes basicas);

javax.swing : Swing Componets ? Graphical User Interface

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 6 / 24

Page 7: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

Modelo de desenvolvimento do SwingInterfaces Graficas

Figure: Hierarquia de Classes

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 7 / 24

Page 8: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

Modelo de desenvolvimento do SwingInterfaces Graficas

Componentes atomicos

Sao elementos ou componentes que nao permitem conter outroselementos. Podemos citar, dentre outros, botoes, labels, textFields,sliders, check boxes, scrollbars, etc.

Componentes contaneirs

Sao elementos que contem componenetes visuais, do tipoJComponente, em uma colecao e organizando-os por meio de umgerenciador de layout e exibindo na tela.

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 8 / 24

Page 9: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

Modelo de desenvolvimento do SwingInterfaces Graficas

Antes de construir uma interface grafica e muito importante planejar:

LayoutUsabilidade

Por exemplo:

Uma interface que contenha uma janela, uma barra de menu e umabarra de statusA janela e responsavel por conter todos os controles e com acapacidade de receber os componentes visuais

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 9 / 24

Page 10: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

Modelo de desenvolvimento do SwingInterfaces Graficas

Container de alto nıvel

javax.swing.JFrame

Nao e uma boa pratica de programacao utilizar classes de alto nıveldiretamente

E mais pratico especializa-las

Ou seja criar novas classes que estendam seu comportamento,herdando todos os metodos das classes originais (super classes)

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 10 / 24

Page 11: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

Modelo de desenvolvimento do SwingInterfaces Graficas

public class MeuFrame extends JFrame {

Public MeuFrame () {

Super (\Minha Janela v1.0");

}

Public void init(){

setForeground(Color.black);

setBackgroud(new Color (192, 192, 192));

SetSize(200, 200);

SetLocation(300,200);

setVisible(true);

}

Public static void main(String[] args){

MeuFrame.init();

}

}

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 11 / 24

Page 12: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

ROTEIRO

1 Exemplificacao de um modelo de desenvolvimento do SwingModelo de desenvolvimento do Swing

2 PRINCIPAIS GERENCIADORESTipos de Gerenciadores

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 12 / 24

Page 13: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

PRINCIPAIS GERENCIADORESTipos de Gerenciadores

Uma vez aprendido a criar e exibir componentes, e necessarioposiciona-los e dimensiona-los.

Foi criado um conjunto de gerenciadores de layout para realizar ocalculo para alinhamento, posicionamento e dimensionamento,independentes da plataforma de execucao

FlowLayoutGridLayoutBorderLayoutGridBagLayoutLayouts compostos

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 13 / 24

Page 14: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

PRINCIPAIS GERENCIADORESTipos

Todos os gerenciadores de layout implementam a interfaceLayoutManager que faz parte do pacote java.awt. Existe o metodosetLayout da classe Container que aceita um objeto que implementa ainterface LayoutManager como um argumento

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 14 / 24

Page 15: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

PRINCIPAIS GERENCIADORESTipos

FlowLayout

Ocorre quando os componentes GUI sao colocados em um conteiner daesquerda para a direita na ordem em que sao adicionados no conteinerQuando a borda do conteiner e alcancada, os componentes continuaraoa ser exibidos na proxima linha.A classe FlowLayout permite aos componentes GUI ser alinhados aesquerda, centralizados (padrao) e alinhados a direita

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 15 / 24

Page 16: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

PRINCIPAIS GERENCIADORESTipos

FlowLayout

Ocorre quando os componentes GUI sao colocados em um conteiner daesquerda para a direita na ordem em que sao adicionados no conteinerQuando a borda do conteiner e alcancada, os componentes continuaraoa ser exibidos na proxima linha.A classe FlowLayout permite aos componentes GUI ser alinhados aesquerda, centralizados (padrao) e alinhados a direita

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 16 / 24

Page 17: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

PRINCIPAIS GERENCIADORESTipos

FlowLayout

Figure: FlowLayout 1

Figure: FlowLayout 2

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 17 / 24

Page 18: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

Modelo de desenvolvimento do SwingInterfaces Graficas

import java.awt.FlowLayout;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

public class FlowExemplo extends JFrame{

private JButton sim, nao, cancelar;

private JLabel mensagem;

public FlowExemplo () {

super("FlowExemplo v1.0");

sim = new JButton("Sim");

nao = new JButton("N~ao");

cancelar = new JButton("Cancelar");

mensagem = new JLabel("Mensagem: ");

getContentPane().setLayout(

new FlowLayout());

}

public void init() {

setForeground(Color.black);

setBackground(new Color(192, 192, 192));

setSize(200, 200);

setLocation(300, 200);

//adiciona componenetes

getContentPane().add(mensagem);

getContentPane().add(sim);

getContentPane().add(nao);

getContentPane().add(cancelar);

setDefaultCloseOperation(

EXIT_ON_CLOSE);

setVisible(true);

}

public static void main(

String[] args){

new FlowExemplo().init();

}

}

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 18 / 24

Page 19: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

PRINCIPAIS GERENCIADORESTipos

GridLayout

E um gerenciador de layout que divide o conteiner em uma grade demodo que os componentes podem ser colocados nas linhas e colunas.A classe GridLayout estende a classe Object e implementa a interfaceLayoutManager.Cada componente no GridLayout tem os mesmos tamanhos, ondepodem ser inserida uma celula na parte superior esquerda da grade queprossegue da esquerda para a direita ate preencher por completa.

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 19 / 24

Page 20: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

PRINCIPAIS GERENCIADORESTipos

GridLayout

Figure: GridLayout 1

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 20 / 24

Page 21: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

Modelo de desenvolvimento do SwingInterfaces Graficas

import java.awt.Color;

import java.awt.GridLayout;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.Jlabel;

public class GridExemplo extends JFrame {

private JButton sim, nao, cancelar;

private JLabel mensagem;

public GridExemplo () {

super ("Meu Grid v1.0");

sim = new JButton("Sim");

nao = new JButton("N~ao");

cancelar = new JButton("Cancelar");

mensagem = new JLabel("Mensagem:");

getContentPane().setLayout(

new GridLayout(2, 2));

}

public void init () {

setForeground(Color.red);

setBackground(new Color(

192, 192, 192));

setSize(300, 200);

setLocation(200, 200);

getContentPane().add(mensagem);

getContentPane().add(sim);

getContentPane().add(nao);

getContentPane().add(cancelar);

setDefaultCloseOperation(

EXIT_ON_CLOSE);

setVisible(true);

}

public static void main(

String[] args) {

new GridExemplo().init();

}

}

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 21 / 24

Page 22: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

Modelo de desenvolvimento do SwingInterfaces Graficas

import java.awt.Container;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.Jframe;

public class FlowExemplo extends JFrame {

private JButton botaoEsquerdo;

private JButton botaoDireito;

private JButton botaoCentral;

private FlowLayout layout;

private Container container;

public FlowExemplo() {

super("Demonstrac~ao de um FlowLayout");

layout = new FlowLayout();

container = getContentPane();

setLayout(layout);

botaoEsquerdo = new JButton("Esquerda");

add(botaoEsquerdo);

botaoEsquerdo.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

layout.setAlignment(FlowLayout.LEFT);

layout.layoutContainer(container);

}

}

);

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 22 / 24

Page 23: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

Modelo de desenvolvimento do SwingInterfaces Graficas

public FlowExemplo() {

......

botaoCentral = new Jbutton("Centro");

add(botaoCentral);

botaoCentral.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e){

layout.setAlignment(FlowLayout.CENTER);

layout.layoutContainer(container);

}

}

);

botaoDireito = new Jbutton("Direita");

add(botaoDireito);

botaoDireito.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

layout.setAlignment(FlowLayout.RIGHT);

layout.layoutContainer(container);

}

}

);

}

public static void main(String[] args) {

FlowExemplo fl = new FlowExemplo();

fl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

fl.setSize(600, 75);

fl.setVisible(true);

}

}

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 23 / 24

Page 24: Programação II - Aula 1 · 2018-06-03 · Aula 1 Vidal. Ronnison Reges1 1An alise e Desenvolvimento de Sistemas - Parangaba Centro Universit ario Est acio do Cear a 2018 Vidal

Vidal. Ronnison Reges (Centro Universitario Estacio do Ceara)Programacao II 2018 24 / 24