• Nenhum resultado encontrado

A Plataforma Java

N/A
N/A
Protected

Academic year: 2021

Share "A Plataforma Java"

Copied!
13
0
0

Texto

(1)

Chamada de Formulários e Passagem de Informações

Prof. Giuliano Prado de Morais Giglio, M.Sc.

A Plataforma Java

Aplicações Visuais com

Swing

(2)

Quando em um formulário FormA deseja-se chamar e exibir um formlário FormB, precisamos criar uma instância de FormB em FormA;

Lembre-se que um JFrame criado é uma classe que representa um formulário (e não um exemplar, um objeto);

(3)

Exemplo: vamos colocar um botão em FormA para que, ao clica-lo, chame e exiba o FormB.

Vamos acionar o

actionPerformed

do botão

(4)

Inclua a linha de instanciação abaixo:

new FormB().setVisible(true);

Verifique que foi criada a instância, ou seja, o formulário e, através do objeto, chama-se o método setVisible() para que exiba o formulário criado, no caso FormB.

(5)

Observe que o FormA ficará “atrás” do FormB,

ou seja, ambos estarão em execução e

exibidos:

(6)

Portanto, dependendo do caso e da execução pretendida para sua aplicação, pode-se fechar o formulário “chamador”, no caso, FormA após a chamada de FormB:

new FormB().setVisible(true);

this.dispose();

Isso fechará por completo FormA.

Mas caso deseja-se somente “esconde-lo”, sem

“destrui-lo”, basta:

this.setVisible(false);

(7)

Muitas vezes precisamos passar informações de um formulário para outro;

Mas como pode ser feito se há duas instâncias (formulários) criadas na memória sem variável que as referencie?

Observe:

◦ A chamada de um form foi feita criando a instancia:

new FormA( ) diretamente

e sem coloca-la numa variável do tipo FormA:

FormA fa = new FormA( );

(8)

Podemos utilizar uma variável de classe (static) para receber um valor de um outro formulário, bem como compartilhar qualquer dado entre eles numa aplicação;

Exemplo: suponhamos quem em FormA precisa-se receber um valor inteiro de FormB

Logo, criamos um atributo estático em FormA.

public class FormA extends javax.swing.JFrame { public static int valInteiro = 0;

(9)

Para que em FormB eu consiga passar um valor para FormA, através do atributo criado, basta fazer:

FormA.valInteiro = 50;

Observe que, por ser estático, a própria classe chama (ou acessa) o atributo, que agora está compartilhado.

Em FormA agora ele possui o valor 50, que está em valInteiro.

(10)

Veja que o atributo está sendo acessado diretamente, pois sua visibilidade é public

Para mantermos as condições de Encapsulamento, podemos deixa-lo private e criar os métodos get/set para o atributo:

private static int valInteiro = 0;

public void setValInteiro(int val){

....

}

public int getValInteiro(){

....

}

(11)

Para acessar agora em FormB, utilizamos os métodos de acesso:

FormA.setValInteiro(50);

Da mesma forma, podemos passar

qualquer dado, principalmente se for um

objeto qualquer.

(12)

Suponhamos que vamos passar um objeto Carro de FormB para FormA:

Em FormA:

public static Carro car1 = null;

Em FormB:

Carro carro = new Carro();

carro.setPlaca(“HFG-7766”);

carro.setMarca(“Audi”);

FormA.car1 = carro;

(ou via set)

(13)

Desta forma, se você desejar verificar se há ou não Carro passado ao FormA, basta fazer a verificação em FormA:

if (car1 != null)

//tem objeto atribuido

else

//não tem objeto atribuido

Referências

Documentos relacionados

Quando conheci o museu, em 2003, momento em foi reaberto, ele já se encontrava em condições precárias quanto à conservação de documentos, administração e organização do acervo,

Como parte de uma composição musi- cal integral, o recorte pode ser feito de modo a ser reconheci- do como parte da composição (por exemplo, quando a trilha apresenta um intérprete

The challenges of aging societies and the need to create strong and effective bonds of solidarity between generations lead us to develop an intergenerational

Em vista disso, essa pesquisa tem por objetivo traçar o contexto histórico do soerguimento do grafite e da pichação ao redor do mundo e do Brasil, traçar as

Então são coisas que a gente vai fazendo, mas vai conversando também, sobre a importância, a gente sempre tem conversas com o grupo, quando a gente sempre faz

Além desta verificação, via SIAPE, o servidor assina Termo de Responsabilidade e Compromisso (anexo do formulário de requerimento) constando que não é custeado

No primeiro capítulo a pesquisa se concentrou no levantamento de dados da escola no Projeto Político Pedagógico (PPP) e análise dos indicadores do SPAECE. No

De acordo com o Consed (2011), o cursista deve ter em mente os pressupostos básicos que sustentam a formulação do Progestão, tanto do ponto de vista do gerenciamento