• Nenhum resultado encontrado

USJT-2016-CCO&SI-PPINT-Aula05-Layouts em Java

N/A
N/A
Protected

Academic year: 2021

Share "USJT-2016-CCO&SI-PPINT-Aula05-Layouts 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:

05

Assunto:

Layouts em Java.

Conceitos Básicos abordados pelo Professor:

- CONTAINER;

- LISTENERS e ACTION LISTENER;

- JBUTTON, JTEXTFIELD, JTEXTAREA e JLABEL.

- FLOWLAYOUT;

- BORDERLAYOUT; e

- GRIDLAYOUT.

Exemplos:

Livro Texto: “Java – Como Programar” – 6ª Edição, Autores: Deitel & Deitel; Exercícios das Figs.:

- 11.39 (pg. 416) e 11.40 (pg. 418); - 11.41 (pg. 419) e 11.42 (pg. 420); e - 11.43 (pg. 421) e 11.44 (pg. 422).

Atividades Práticas:

1- Utilizando o FlowLayout, criar uma aplicação com:

a) 3 (três) campos de texto: “Valor1”, “Valor2” e “Resposta”; e

b) 1 (um) botão “SOMA”.

O botão “SOMA”, quando solicitado, deverá realizar a soma dos valores existentes nos campos “Valor1”

e “Valor 2”, colocando esse resultado encontrado no campo “Resposta”;

2- Utilizando mais de um container, um para cada layout apresentado (FlowLayout, BorderLayout e

GridLayout), elaborar uma calculadora de 4 operações:

a) Soma (+);

b) Subtração (-);

c) Multiplicação (*); e

d) Divisão (/).

(2)

// Fig. 11.39: FlowLayoutFrame.java

// Demonstrando os alinhamentos de FlowLayout.

import java.awt.FlowLayout; import java.awt.Container; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JFrame; import javax.swing.JButton;

public class FlowLayoutFrame extends JFrame {

private JButton leftJButton; // botão para configurar alinhamento à esquerda

private JButton centerJButton; // botão p/ configurar alinhamento centralizado

private JButton rightJButton; // botão para configurar alinhamento à direita

private FlowLayout layout; // objeto de layout

private Container container; // contêiner para configurar layout

// configura GUI e registra listeners de botão

public FlowLayoutFrame() {

super( "FlowLayout Demo" );

layout = new FlowLayout(); // cria FlowLayout

container = getContentPane(); // obtém contêiner para layout

setLayout( layout ); // configura o layout de frame

// configura leftJButton e registra listener

leftJButton = new JButton( "Left" ); // cria botão Left

add( leftJButton ); // adiciona o botão Left ao frame

leftJButton.addActionListener(

new ActionListener() // classe interna anônima

{

// processa o evento leftJButton

public void actionPerformed( ActionEvent event ) {

layout.setAlignment( FlowLayout.LEFT ); // realinha os componentes anexados

layout.layoutContainer( container ); } // fim do método actionPerformed

} // fim da classe interna anônima

); // fim da chamada para addActionListener

// configura centerJButton e registra o listener

centerJButton = new JButton( "Center" ); // cria botão Center

add( centerJButton ); // adiciona botão Center ao frame

centerJButton.addActionListener(

new ActionListener() // classe interna anônima

{

// processa evento centerJButton

public void actionPerformed( ActionEvent event ) {

layout.setAlignment( FlowLayout.CENTER ); // realinha os componentes anexados

layout.layoutContainer( container ); } // fim do método actionPerformed

} // fim da classe interna anônima

); // fim da chamada para addActionListener

(3)

// configura rightJButton e registra o listener

rightJButton = new JButton( "Right" ); // cria botão Right

add( rightJButton ); // adiciona botão Right ao frame

rightJButton.addActionListener(

new ActionListener() // classe interna anônima

{

// processo evento rightJButton

public void actionPerformed( ActionEvent event ) {

layout.setAlignment( FlowLayout.RIGHT ); // realinha os componentes anexados

layout.layoutContainer( container ); } // fim do método actionPerformed

} // fim da classe interna anônima

); // fim da chamada para addActionListener

} // fim do construtor FlowLayoutFrame

} // FlowLayoutFrame fim da classe

// Fig. 11.40: FlowLayoutDemo.java // Testando FlowLayoutFrame.

import javax.swing.JFrame;

public class FlowLayoutDemo {

public static void main( String args[] ) {

FlowLayoutFrame flowLayoutFrame = new FlowLayoutFrame();

flowLayoutFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); flowLayoutFrame.setSize( 300, 75 ); // configura o tamanho do frame

flowLayoutFrame.setVisible( true ); // exibe o frame

} // fim de main

} // fim da classe FlowLayoutDemo

(4)

// Fig. 11.41: BorderLayoutFrame.java // Demonstrando BorderLayout. import java.awt.BorderLayout; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JFrame; import javax.swing.JButton;

public class BorderLayoutFrame extends JFrame implements ActionListener {

private JButton buttons[]; // array de botões para ocultar partes

private final String names[] = { "Hide North", "Hide South", "Hide East", "Hide West", "Hide Center" };

private BorderLayout layout; // objeto borderlayout

// configura GUI e tratamento de evento

public BorderLayoutFrame() {

super( "BorderLayout Demo" );

layout = new BorderLayout( 5, 5 ); // espaços de 5 pixels

setLayout( layout ); // configura o layout de frame

buttons = new JButton[ names.length ]; // configura o tamanho do array

// cria JButtons e registra ouvintes para eles

for ( int count = 0; count < names.length; count++ ) {

buttons[ count ] = new JButton( names[ count ] ); buttons[ count ].addActionListener( this ); } // for final

add( buttons[ 0 ], BorderLayout.NORTH ); // adiciona botão para o norte

add( buttons[ 1 ], BorderLayout.SOUTH ); // adiciona botão para o sul

add( buttons[ 2 ], BorderLayout.EAST ); // adiciona botão para o leste

add( buttons[ 3 ], BorderLayout.WEST ); // adiciona botão para o oeste

add( buttons[ 4 ], BorderLayout.CENTER ); // adiciona botão para o centro

} // fim do construtor BorderLayoutFrame

// trata os eventos de botão

public void actionPerformed( ActionEvent event ) {

// verifica a origem de evento e o painel de conteúdo de layout correspondentemente

for ( JButton button : buttons ) {

if ( event.getSource() == button )

button.setVisible( false ); // oculta o botão clicado

else

button.setVisible( true ); // mostra outros botões

} // for final

layout.layoutContainer( getContentPane() ); // painel de conteúdo de layout

} // fim do método actionPerformed

} // fim da classe BorderLayoutFrame // Fig. 11.42: BorderLayoutDemo.java // Testando BorderLayoutFrame.

import javax.swing.JFrame;

public class BorderLayoutDemo {

public static void main( String args[] ) {

BorderLayoutFrame borderLayoutFrame = new BorderLayoutFrame(); borderLayoutFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); borderLayoutFrame.setSize( 300, 200 ); // configura o tamanho do frame

borderLayoutFrame.setVisible( true ); // exibe o frame

(5)

// Fig. 11.43: GridLayoutFrame.java // Demonstrando GridLayout. import java.awt.GridLayout; import java.awt.Container; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JFrame; import javax.swing.JButton;

public class GridLayoutFrame extends JFrame implements ActionListener {

private JButton buttons[]; // array de botões

private final String names[] =

{ "one", "two", "three", "four", "five", "six" };

private boolean toggle = true; // alterna entre dois layouts

private Container container; // contêiner do frame

private GridLayout gridLayout1; // primeiro gridlayout

private GridLayout gridLayout2; // segundo gridlayout

// construtor sem argumento

public GridLayoutFrame() {

super( "GridLayout Demo" );

gridLayout1 = new GridLayout( 2, 3, 5, 5 ); // 2 por 3; lacunas de 5

gridLayout2 = new GridLayout( 3, 2 ); // 3 por 2; nenhuma lacuna

container = getContentPane(); // obtém painel de conteúdo

setLayout( gridLayout1 ); // configura o layout JFrame

buttons = new JButton[ names.length ]; // cria array de JButtons

for ( int count = 0; count < names.length; count++ ) {

buttons[ count ] = new JButton( names[ count ] );

buttons[ count ].addActionListener( this ); // registra o listener

add( buttons[ count ] ); // adiciona o botão ao JFrame

} // for final

} // fim do construtor GridLayoutFrame

// trata eventos de botão alternando entre layouts

public void actionPerformed( ActionEvent event ) {

if ( toggle )

container.setLayout( gridLayout2 ); // configura layout como segundo

else

container.setLayout( gridLayout1 ); // configura layout como primeiro

toggle = !toggle; // alterna para valor oposto

container.validate(); // refaz o layout do contêiner

} // fim do método actionPerformed

} // fim da classe GridLayoutFrame

// Fig. 11.44: GridLayoutDemo.java // Testando GridLayoutFrame.

import javax.swing.JFrame;

public class GridLayoutDemo {

public static void main( String args[] ) {

GridLayoutFrame gridLayoutFrame = new GridLayoutFrame();

gridLayoutFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); gridLayoutFrame.setSize( 300, 200 ); // configura o tamanho do frame

gridLayoutFrame.setVisible( true ); // exibe o frame

} // fim de main

} // fim da classe GridLayoutDemo

(6)

/************************************************************************** * (C) Copyright 1992-2005 by Deitel & Associates, Inc. and * * Pearson Education, Inc. All Rights Reserved. * * * * DISCLAIMER: The authors and publisher of this book have used their * * best efforts in preparing the book. These efforts include the * * development, research, and testing of the theories and programs * * to determine their effectiveness. The authors and publisher make * * no warranty of any kind, expressed or implied, with regard to these * * programs or to the documentation contained in these books. The authors * * and publisher shall not be liable in any event for incidental or * * consequential damages in connection with, or arising out of, the * * furnishing, performance, or use of these programs. * *************************************************************************/

Referências

Documentos relacionados

No parque Estadual de Sumidouro algumas grutas como Helictites, Pacas, Túneis/Macumba são utilizadas para esse propósito.. O presente trabalho tem como objetivo

A transferência de informações de uma escala mais fina para uma escala mais grosseira (“upscaling”) é um método muito utilizado no tratamento dos dados provenientes da

7 Cuadro de maniobra IZ1C, IZ4C, IZ4DC: ADB30 IZS1, IZS4, IZS4D: VIVO-D102(M) 8 Semáforo.. 9 Fotocélula 10 Tensor

A todo o momento e desde a construção, manipulação e observação com os devidos registros solicitados das faces dos poliedros e em cada indicação e registro na

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