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

Post on 03-Jul-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

DROPBOX

https://goo.gl/nEvz6w

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

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

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

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

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

Modelo de desenvolvimento do SwingInterfaces Graficas

Figure: Hierarquia de Classes

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

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

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

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

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

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

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

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

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

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

PRINCIPAIS GERENCIADORESTipos

FlowLayout

Figure: FlowLayout 1

Figure: FlowLayout 2

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

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

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

PRINCIPAIS GERENCIADORESTipos

GridLayout

Figure: GridLayout 1

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

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

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

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

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

top related