• 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

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

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

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

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