• Nenhum resultado encontrado

USJT-2016-CCO&SI-PPINT-Aula09-Diálogos Retornando Valores em Java

N/A
N/A
Protected

Academic year: 2021

Share "USJT-2016-CCO&SI-PPINT-Aula09-Diálogos Retornando Valores em Java"

Copied!
6
0
0

Texto

(1)

USJT – 2016 – CCO & SI – PPINT – Práticas de Programação Integrada

Professores:

Calvetti, Élcio, Fúlvio, Hamilton, Liliane e Rodrigo

Aula:

09

Assunto:

Diálogos Retornando Valores em Java.

Conceitos Básicos abordados pelo Professor:

- Diálogos;

- Super();

- This;

- Dispose();

- Modal; e

- Flag.

Exemplos:

1- DialogoI.java e ExemploI.java: Exemplo de diálogos que retornam valores entre eles, utilizando-se de instanciação: A chamada do diálogo usa uma instanciação da classe “DialogoI”, classe que recebe outro valor; e

2- DialogoM.java e ExemploM.java: Exemplo de diálogos que retornam valores entre eles, utilizando-se de métodos: A chamada do diálogo usa um método da classe “DialogoM”, classe que recebe outro valor.

Nesses exemplos, o objetivo foi obter o retorno do valor de diálogo. Pode-se utilizar a mesma estrutura, para o caso se receber uma senha, por exemplo.

O JDialog possui no construtor a classe que o chama, por isso utilizou-se do comando this, e também um flag que diz se o diálogo é MODAL, ou seja, só permite retornar à aplicação que o chamou após o seu término. Essa flag está atribuída inicialmente com true.

Atividades Práticas:

1- Baseado nos exercícios da aula anterior, de cadastro e validação de Login e Senha, gravados e lidos

em um arquivo texto, desenvolver um programa único que se utilize de Diálogo para tal aplicação,

através de Instanciação; e

2- Baseado nos exercícios da aula anterior, de cadastro e validação de Login e Senha, gravados e lidos

em um arquivo texto, desenvolver um programa único que se utilize de Diálogo para tal aplicação,

através de Método.

(2)

Anexos:

// Exemplo de Diálogo por Instanciação

import javax.swing.*; import java.awt.*; import java.awt.event.*;

public class DialogoI extends JDialog implements ActionListener { // Rótulo JLabel lb; // Campo Texto JTextField tf; // Botão JButton bt; // Atributo de valor int valor; // Método Construtor public DialogoI(JFrame fr) {

// Invoca o método construtor da superclasse super(fr, true);

// Cria um Conteiner de Tela Container cp = getContentPane();

// Determina a tela como um FlowLayout cp.setLayout(new FlowLayout());

// Cria um Rótulo com o texto "Valor" lb = new JLabel("Valor:");

// Adiciona o Rótulo no Conteiner cp.add(lb);

// Cria um Campo Texto de largura 10 pxls tf = new JTextField(10);

// Adiciona o Campo Texto no Conteiner cp.add(tf);

// Cria um Botão com o texto "OK" bt = new JButton ("OK");

// Adiona o Botão no Conteiner cp.add(bt);

// Adiciona uma ação ao Botão bt.addActionListener(this);

// Programa o tamanho inicial do FlowLayout em pxls setSize(200,100);

// Determina a localização inicial do FlowLayout em pxls setLocation(200,200);

// Determina qual o título do FlowLayout setTitle("Valores");

// Estabelece que o FlowLayout será visível inicialmente setVisible(true);

}

(3)

// Método de tratamento do evento da ação do botão public void actionPerformed(ActionEvent e)

{

// Verifica se o evento pertence ao botão if (e.getSource() == bt)

{

// Lê o valor constante no campo texto e o atribui a valor valor = Integer.parseInt(tf.getText());

// Fecha e Libera o FlowLayout dispose();

} }

// Método para acessar o atributo Valor public int getValor()

{

return valor; }

}

// Exemplo de Diálogo por Instanciação - Teste

import javax.swing.*; import java.awt.*; import java.awt.event.*;

public class ExemploI extends JFrame implements ActionListener { // Botão JButton b; // Método Construtor public ExemploI() {

// Cria um Conteiner de Tela Container c = getContentPane();

// Determina a tela como um FlowLayout c.setLayout(new FlowLayout());

// Cria um Botão com o texto "Clique" b = new JButton("Clique");

// Adiona o Botão no Conteiner c.add(b);

// Adiciona uma ação ao Botão b.addActionListener(this);

// Programa o tamanho inicial do FlowLayout em pxls setSize(350,75);

// Determina a localização inicial do FlowLayout em pxls setLocation(470,50);

// Determina qual o título do FlowLayout setTitle("Exemplo de Diálogo (Instanciação)");

// Estabelece que o FlowLayout será visível inicialmente setVisible(true);

(4)

// Método de tratamento do evento da ação do botão public void actionPerformed(ActionEvent e)

{

// Verifica se o evento pertence ao botão if(e.getSource() == b)

{

// Instancia um objeto de Dialogo DialogoI a = new DialogoI(this);

// Apresenta o atributo valor (de Dialogo)

JOptionPane.showMessageDialog(null, "Valor Digitado: " + a.valor); }

}

// Método Principal

public static void main(String args[]) {

// Instancia um objeto de Exemplo ExemploI prog = new ExemploI();

// Programa encerramento do Frame no Sair (X)

prog.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }

}

// Exemplo de Diálogo por Método

import javax.swing.*; import java.awt.*; import java.awt.event.*;

public class DialogoM extends JDialog implements ActionListener { // Rótulo JLabel lb; // Campo Texto JTextField tf; // Botão JButton bt; // Atributo de valor int valor; // Método Construtor private DialogoM(JFrame fr) {

// Invoca o método construtor da superclasse super(fr, true);

// Cria um Conteiner de Tela Container cp = getContentPane();

// Determina a tela como um FlowLayout cp.setLayout(new FlowLayout());

// Cria um Rótulo com o texto "Valor" lb = new JLabel("Valor:");

// Adiciona o Rótulo no Conteiner cp.add(lb);

// Cria um Campo Texto de largura 10 pxls tf = new JTextField(10);

// Adiciona o Campo Texto no Conteiner cp.add(tf);

// Cria um Botão com o texto "OK" bt = new JButton ("OK");

// Adiona o Botão no Conteiner cp.add(bt);

(5)

// Adiciona uma ação ao Botão bt.addActionListener(this);

// Programa o tamanho inicial do FlowLayout em pxls setSize(200,100);

// Determina a localização inicial do FlowLayout em pxls setLocation(200,200);

// Determina qual o título do FlowLayout setTitle("Valores");

// Estabelece que o FlowLayout será visível inicialmente setVisible(true);

}

// Método de tratamento do evento da ação do botão public void actionPerformed(ActionEvent e)

{

// Verifica se o evento pertence ao botão if (e.getSource() == bt)

{

// Lê o valor constante no campo texto e o atribui a valor valor = Integer.parseInt(tf.getText());

// Fecha e Libera o FlowLayout dispose();

} }

// Método para acessar o atributo Valor static int getValor(JFrame fr)

{

DialogoM dl = new DialogoM(fr); return dl.valor;

} }

// Exemplo de Diálogo por Método - Teste

import javax.swing.*; import java.awt.*; import java.awt.event.*;

public class ExemploM extends JFrame implements ActionListener { // Botão JButton b; // Método Construtor public ExemploM() {

// Cria um Conteiner de Tela Container c = getContentPane();

// Determina a tela como um FlowLayout c.setLayout(new FlowLayout());

// Cria um Botão com o texto "Clique" b = new JButton("Clique");

// Adiona o Botão no Conteiner c.add(b);

// Adiciona uma ação ao Botão b.addActionListener(this);

// Programa o tamanho inicial do FlowLayout em pxls setSize(350,75);

// Determina a localização inicial do FlowLayout em pxls setLocation(470,50);

(6)

// Determina qual o título do FlowLayout setTitle("Exemplo de Diálogo (Método)");

// Estabelece que o FlowLayout será visível inicialmente setVisible(true);

}

// Método de tratamento do evento da ação do botão public void actionPerformed(ActionEvent e)

{

// Verifica se o evento pertence ao botão if(e.getSource() == b)

{

// Apresenta o atributo valor (de Dialogo)

JOptionPane.showMessageDialog(null,"Valor Digitado:"+DialogoM.getValor(this)); }

}

// Método Principal

public static void main(String args[]) {

// Instancia um objeto de Exemplo ExemploM prog = new ExemploM();

// Programa encerramento do Frame no Sair (X)

prog.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }

Referências

Documentos relacionados

DATA: 17/out PERÍODO: MATUTINO ( ) VESPERTINO ( X ) NOTURNO ( ) LOCAL: Bloco XXIB - sala 11. Horário Nº Trabalho Título do trabalho

Os serviços da camionagem no Grande Porto Partindo agora de uma leitura de conjunto, na qual separamos os concessionários das empresas privadas segundo o tipo de serviço que presta

as quais discorremos no corpo deste texto, são: (a) a brincadeira de Capryynre, que chamamos em português de brincadeira de jabuti; (b) a brincadeira de A’cruu’te, que recebeu o

Entretanto, uma observação mais detalhada da Figura 5.6, referente ao laminado PPS-C, já permite verificar claramente, para os dois modos de aquecimento dos laminados, a presença

Um teste utilizando observa¸c˜ oes de fra¸c˜ ao de massa do g´ as de aglomerados de ga- l´ axias e SNe Ia foi proposto por Gon¸calves, Holanda e Alcaniz (2012)[ 41 ]. Eles

Valendo-se das contribuições do modelo da Lata do Lixo (Garbage Can) de Cohen e March (1972), Kingdon (1984) desenvolveu uma abordagem sobre a definição de agenda e de

Eletroforese em gel de agarose e representação gráfica do padrão de splicing dos transcritos de mRNA provenientes do gene repórter transfectado em células HEK 293