4.1. Sugestões Para Trabalhos Futuros
4.1.2 A Respeito do Programa
* Diversificando durante a realização do experimento, de como as cores irão modificar por parte dos Formatos 1 e 3 (colocando figuras que variem de acordo aleatório do programador ou da pessoa testada), como exemplo: Ao invés da face esquerda mudar a tonalidade, no Formato 1, fosse seguida alternada;
* Experimentos testados com outras cores que não sejam primárias ou secundárias, mas sempre tendo pelo menos uma delas como base para testar as outras(como exemplo, várias tonalidades de vermelho a fim de diferenciá-los).
É importante observar as variáveis que foram centralizadas anteriormente, pois uma vez que estiver com pelo menos uma modificada, o problema tornaria outro e os resultados poderiam ser diferentes. Seria outros valores a quantificar se houvesse tais mudanças.
Homens R G B R G B preto 0 0 0 6 6 6 cinza 128 128 128 119 119 119 azul 0 0 255 0 0 235 verde 0 255 0 0 238 0 mag 255 0 255 243 0 243 vermelho 255 0 0 238 0 0 laranja 255 200 0 255 190 0 amareLO 255 255 0 242 242 0 ciano 0 255 255 0 243 243 branco 255 255 255 245 245 245
6 -ANEXOS
O código-fonte do programa: Agradecimentos ao Maj Carlos Braz, professor do curso de Cartografia do Instituto Militar de Engenharia.
MenuFrame: import java.awt.Color; import java.awt.BorderLayout; import java.awt.Component; import java.awt.GridLayout; import java.awt.Panel; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import java.io.FileWriter; import java.io.PrintWriter; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JRadioButtonMenuItem; import javax.swing.JOptionPane; import javax.swing.ButtonGroup; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JMenuBar; import java.io.IOException;
public class MenuFrame extends JFrame {
private final Color arraydecores[] = { Color.BLACK, Color.GRAY, Color.BLUE, Color.GREEN, Color.MAGENTA, Color.RED, Color.ORANGE, Color.YELLOW, Color.CYAN, Color.WHITE };
private JRadioButtonMenuItem colorItems[]; // itens do menu Color private JRadioButtonMenuItem formas[]; // itens do menu Forma private ButtonGroup fontButtonGroup; // gerencia itens do menu Forma private ButtonGroup colorButtonGroup; // gerencia itens do menu Color private final GridLayout Formatos[] = {new GridLayout(1,2,5,5),new GridLayout(1,1,0,0)};
private JPanel painelcentral = new JPanel(); private Panel j1=new Panel();
private Panel j2=new Panel();
private JButton botao=new JButton("aperte"); private JButton botao2=new JButton();
private JMenu menuForma; private Panel aux=new Panel(); private Panel aux1=new Panel(); private Panel aux2=new Panel(); private Panel aux3=new Panel(); private int statusforma;
private Color corbase; private File arquivosaida; private PrintWriter escritor;
// construtor sem argumento para configurar a GUI public MenuFrame() throws IOException
{
super( "Avaliação" );
botao2.setBorderPainted(false);
JMenu fileMenu = new JMenu( "Arquivo" ); // cria o menu File
fileMenu.setMnemonic( 'A' ); // configura o mnemônico como F // cria item de menu Sobre...
JMenuItem aboutItem = new JMenuItem( "Sobre..." );
aboutItem.setMnemonic( 'S' ); // configura o mnemônico com A fileMenu.add( aboutItem ); // adiciona o item about ao menu File
aboutItem.addActionListener(
new ActionListener() // classe interna anônima {
// exibe um diálogo de mensagem quando o usuário seleciona Sobre...
public void actionPerformed( ActionEvent event ) {
JOptionPane.showMessageDialog( MenuFrame.this, "Autoria de Carlos Braz\nbraz@ime.eb.br",
"Sobre", JOptionPane.PLAIN_MESSAGE ); } // fim do método actionPerformed
} // fim da classe interna anônima
); // fim da chamada para addActionListener
JMenuItem exitItem = new JMenuItem( "Exit" ); // cria o item exit
exitItem.setMnemonic( 'x' ); // configura o mnemônico como x fileMenu.add( exitItem ); // adiciona o item exit ao menu File
exitItem.addActionListener(
new ActionListener() // classe interna anônima {
// termina o aplicativo quando o usuário clica exitItem public void actionPerformed( ActionEvent event )
{
long l=0;
l=System.currentTimeMillis();
escritor.println(l/1000000);
escritor.println("---FIM DO TESTE---"); System.exit( 0 ); // encerra o aplicativo
} // fim do método actionPerformed } // fim da classe interna anônima
); // fim da chamada para addActionListener
this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ long l=0; if(arquivosaida.length()==0L) System.exit(0); else l = System.currentTimeMillis(); escritor.println(l/1000000); escritor.println("---FIM DO TESTE---"); System.exit(0); } });
JMenuBar bar = new JMenuBar(); // cria a barra de menus
setJMenuBar( bar ); // adiciona uma barra de menus ao aplicativo bar.add( fileMenu ); // adiciona o menu File a barra de menus
JMenu formatMenu = new JMenu( "Formatos" ); // cria o menu Format formatMenu.setMnemonic( 'F' ); // configura o mnemônico como r // array listando cores de string
String colors[] = { "Preto", "Cinza", "Azul", "Verde", "Magenta", "Vermelho", "Laranja", "Amarelo", "Ciano", "Branco" };
JMenu colorMenu = new JMenu( "Cor" ); // cria o menu Color
colorMenu.setMnemonic( 'C' ); // configura o mnemônico como C // cria itens do menu Color com botões de opção
colorItems = new JRadioButtonMenuItem[ colors.length ]; colorButtonGroup = new ButtonGroup(); // gerencia cores
ItemHandler itemHandler = new ItemHandler(); // handler para cores // cria itens do menu Color com botões de opções
for ( int count = 0; count < colors.length; count++ ) {
colorItems[ count ] = new JRadioButtonMenuItem( colors[ count ] ); // cria o item
colorMenu.add( colorItems[ count ] ); // adiciona o item ao menu Color colorButtonGroup.add( colorItems[ count ] ); // adiciona ao grupo colorItems[ count ].addActionListener( itemHandler );
} // fim do for
formatMenu.add( colorMenu ); // adiciona o menu Color ao menu Format formatMenu.addSeparator(); // adiciona um separador no menu // array listando nomes de forma
String fontNames[] = { "Formato1", "Formato2", "Formato3" }; menuForma = new JMenu( "Forma" ); // cria a forma do menu
menuForma.setMnemonic( 'm' ); // configura o mnemônico como n menuForma.setEnabled(false);
// cria itens do menu radiobutton para nomes de forma
formas = new JRadioButtonMenuItem[ fontNames.length ];
fontButtonGroup = new ButtonGroup(); // gerencia os nomes das formas ItemHandler2 itemHandler2 = new ItemHandler2(); // handler para cores // criar itens do menu Font com botões de opção
for ( int count = 0; count < formas.length; count++ ) {
formas[ count ] = new JRadioButtonMenuItem( fontNames[ count ] ); menuForma.add( formas[ count ] ); // adiciona forma ao menu Font fontButtonGroup.add( formas[ count ] ); // adiciona ao grupo de botões formas[ count ].addActionListener( itemHandler2 ); // adiciona handler } // fim do for
formatMenu.add( menuForma ); // adiciona o menu Font ao menu Format bar.add( formatMenu ); // adiciona o menu Format a barra de menus add(painelcentral,BorderLayout.CENTER); botao.addActionListener(new eventosbotao()); add(botao, BorderLayout.SOUTH); System.out.println(painelcentral.getComponentCount());
arquivosaida = new File("saidaprog.txt");
FileWriter fw = new FileWriter(arquivosaida, true); escritor = new PrintWriter(fw,true);
} // fim do construtor de MenuFrame
// classe interna para tratar eventos de ações dos itens de menu private class ItemHandler implements ActionListener
{
// processa seleções de cor
public void actionPerformed( ActionEvent event ) {
// processa a seleção de cor
for ( int count = 0; count < colorItems.length; count++ ) {
if ( colorItems[ count ].isSelected() ) {
corbase = arraydecores[count]; escritor.println(corbase.toString());
j1.setBackground( arraydecores[ count ] ); j2.setBackground( arraydecores[ count ] ); botao2.setBackground(arraydecores[ count ]); menuForma.setEnabled(true);
if(botao2.isShowing()){ painelcentral.setBackground(botao2.getBackground()); aux.setBackground(botao2.getBackground()); aux1.setBackground(botao2.getBackground()); aux2.setBackground(botao2.getBackground()); aux3.setBackground(botao2.getBackground()); } } // fim do if } // fim do for
repaint(); // redesenha o aplicativo } // fim do método actionPerformed } // fim da classe ItemHandler
private class ItemHandler2 implements ActionListener {
// processa seleções forma
public void actionPerformed( ActionEvent event ) {
// processa a seleção de forma if ( formas[ 0 ].isSelected() ) { statusforma =1; escritor.println(formas[statusforma-1].getActionCommand()); if(botao2.isShowing()||j2.isShowing()){ painelcentral.setBackground(new Color(238,238,238)); painelcentral.removeAll(); repaint(); } painelcentral.setLayout(Formatos[0]); painelcentral.add(j1); painelcentral.add(j2); painelcentral.validate(); repaint(); }// fim do if if ( formas[ 1 ].isSelected() ) {
statusforma =2;
escritor.println(formas[statusforma-1].getActionCommand()); if(j1.isShowing()||botao2.isShowing()){
painelcentral.removeAll();
painelcentral.setBackground(j2.getBackground());//porque
some o j1, somente para dar impressão
repaint(); } painelcentral.setLayout(Formatos[1]); painelcentral.add(j2); painelcentral.validate(); repaint(); } // fim do if if ( formas[ 2 ].isSelected() ) { statusforma =3; escritor.println(formas[statusforma-1].getActionCommand()); if(j1.isShowing()||j2.isShowing()) {painelcentral.removeAll(); } painelcentral.setLayout(new BorderLayout(60,60)); painelcentral.setBackground(botao2.getBackground()); painelcentral.add(botao2, BorderLayout.CENTER); aux.setBackground(botao2.getBackground()); aux1.setBackground(botao2.getBackground()); aux2.setBackground(botao2.getBackground()); aux3.setBackground(botao2.getBackground()); painelcentral.add(aux1, BorderLayout.NORTH); painelcentral.add(aux, BorderLayout.SOUTH); painelcentral.add(aux2, BorderLayout.WEST); painelcentral.add(aux3, BorderLayout.EAST); painelcentral.validate(); repaint(); } // fim do if //System.out.println(painelcentral.getComponentCount()); repaint();
} // fim da classe ItemHandl
private void processa(Component j) throws IOException{ int red = j.getBackground().getRed();
int green = j.getBackground().getGreen(); int blue = j.getBackground().getBlue();
//System.out.println(j.getBackground());
//System.out.println(formas[statusforma-1].getActionCommand()); if(corbase==Color.BLACK){red++;green++;blue++;}
else if(corbase==Color.RED){red--;}
else if(corbase ==Color.GREEN){green--;} else if(corbase ==Color.BLUE){blue--;}
else if(corbase ==Color.MAGENTA){red--;blue--;} else if(corbase ==Color.CYAN){green--;blue--;}
else if(corbase ==Color.GRAY){red--;green--;blue--;} else if(corbase ==Color.ORANGE){green--;}
else if(corbase ==Color.WHITE){red--;green--;blue--;} else if(corbase ==Color.YELLOW){red--;green--;}
//else {red++;green++;blue++;} j.setBackground(new Color(red,green,blue)); escritor.println(j.getBackground().toString()); }
private class eventosbotao implements ActionListener {
// processa seleções de cor e forma
public void actionPerformed( ActionEvent event ) { switch (statusforma) { case 1: try { processa(j1); } catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace();
}
break; case 2:
try {
processa(j2);
} catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace(); } break; case 3: try { processa(botao2); } catch (IOException e) {
// TODO Auto-generated catch block e.printStackTrace(); } break; default: JOptionPane.showMessageDialog( MenuFrame.this,
"Escolha \n uma cor",
"ATENCAO", JOptionPane.PLAIN_MESSAGE ); }
} // fim do método actionPerformed } // fim da classe eventobotao
} // fim da classe MenuFrame MenuTest
import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.IOException;
import javax.swing.JFrame; public class MenuTest
{
public static void main( String args[] ) throws IOException {
//menuFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
menuFrame.setSize( 1400, 750 ); // configura o tamanho do frame menuFrame.setVisible( true ); // exibe o frame
long l=0;
l=System.currentTimeMillis(); System.out.println(l/1000000); // fim de main
7 REFERÊNCIAS BIBLIOGRÁFICAS
>http://pepsic.bvs-psi.org.br/pdf/psicousp/v17n4/v17n4a02.pdf [capturado em 20 de janeiro de 2010];
>SEEBER,G., (1993).Satellite geodesy: foundations, methods and applications. Ed.Walter de Gruyter, New York;
> http://bases.bireme.br/ acessado em 17 de novembro de 2009;
>HOLMES, David.,GOSLING, James.,ARNOLD, Ken., A linguagem de Programação Java. Ed.artmed, Quarta Edição; São Paulo, 799 páginas. 2007;
>AZEVEDO,Maria de Fátima Mendes ;SANTOS,Michelle Steiner ;OLIVEIRA,Rúbia; O Uso da Cor no Ambiente de Trabalho: Uma Ergonomia da Percepção .Universidade Federal de Santa Catarina/PPGEP Campus Universitário, Trindade, Florianópolis, SC; 2000
> FERREIRA, da Silva, 2009; Notas de Aula de Comunicação Cartográfica não-publicadas;
> VILLARREAL, Mariana Ruiz; LadyofHats, 2007
>CAYAL, Santiago Ramón y, Histologie Du Système Nerveux de l'Homme et Des Vertébrés, Maloine, Paris, 1911