• Nenhum resultado encontrado

USJT-2013-CP-PPINT-Aula08-Layouts em Java

N/A
N/A
Protected

Academic year: 2021

Share "USJT-2013-CP-PPINT-Aula08-Layouts em Java"

Copied!
6
0
0

Texto

(1)

USJT – 2013 – CP – PPINT – Práticas de Programação Integrada

Professores:

Robson Calvetti e Rogério Augusto Rondini.

Aula:

08

Assunto:

Layouts em Java.

Conceitos Básicos abordados pelo Professor:

- FLOWLAYOUT (Visto na Aula 07);

- 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).

Atividade Prática:

Construa uma aplicação idêntica à solicitada na Aula 07 (Calculadora) utilizando mais de um container, um

para cada Layout visto nesta aula (Aula 08): FlowLayout, BorderLayout e GridLayout.

(2)

Anexos: Figs.: 11.39, 11.40, 11.41, 11.42, 11.43, 11.44 e Copyright;

// 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

} // fim de main

(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

Assim como a Intemet, a Intranet também tem seu papel fundamental nas organizações parao gerenciamento dos sistemas empresariais. Em verdade a intranet é o

Diversos estudos utilizam o modelo de contorções abdominais em ratos para a determinação da atividade antinociceptiva de derivados tiazolidínicos e imidazolidínicos

Catalogação na Fonte Setor de Processos Técnicos de Biblioteca Central - UFRPE L758e Lino, Mércia Andréa da Silva Estudo Biológico-Pesqueiro da manjuba, Opisthonema oglinum

Autor de Fisiologia do gosto (Physiologie Du goût, ou méditations de gastronomie transcendante).. Seus dados sensoriais são estruturados, consciente ou inconscientemente, de

Os traficantes exploram justamente esse impulso, ajudados pelo crescimento econômico dos países, que fez surgir mercados de trabalho até então inexistentes e muitas vezes

Por fim o Estudo 3, a partir de uma amostra de 388 adolescentes, investigou o modelo preditivo de características pessoais positivas (otimismo, autoestima, autoeficácia

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