Вы находитесь на странице: 1из 6

Jogo Da Velha

- Parte 1 -

Fazendo a parte grfica do jogo da Velha

por: Leri Oliveira Equipe PAJ cti.paje g!ail.co! http:""###.cti.$urg.%r"i&$or!atica"paje

Primeiro vamos usar a classe JFrame para criar a janela. No esquea que preciso salvar o arquivo com o nome de Velha.java import javax.swing.JFrame pu!lic class Velha " private static JFrame #rame $ new JFrame%&Jogo da Velha&' pu!lic static void main%(tring)* args' " // determina o tamanho do frame #rame.set(i+e%,-./,0.' // torna o frame visvel #rame.setVisi!le%true' 1 1 Provavelmente depois de rodar a aplicao no #oi poss2vel #inali+ar ela. 3sso acontece porque no #oi determinada a ao de #echar o programa/ ento vamos tratar o evento da janela para #a+er isso. import javax.swing.JFrame import java.awt.event.4indow5dapter import java.awt.event.4indow6vent pu!lic class Velha " private static JFrame #rame $ new JFrame%&Jogo da Velha&' pu!lic static void main%(tring)* args' " // adiciona o evento ao frame #rame.add4indow7istener%new eventojanela%'' // determina o tamanho do frame #rame.set(i+e%,-./,0.' // torna o frame visvel #rame.setVisi!le%true' 1 /* * classe de Eventos da Janela */ private static class eventojanela extends 4indow5dapter " // mtodo para fechar a janela pu!lic void window8losing%4indow6vent e' " // mtodo para finalizar a aplicao (9stem.exit%.' 1 1 1

5gora j: conseguimos #echar a aplicao. Para #a+er um jogo da velha temos varias op;es/ vou usar a mais #:cil/ que no #ica to !em apresent:vel/ mas serve para aprendi+ado. Vamos adicionar um la9out ao Frame. <tili+ando o la9out de grade =x= conseguiremos chegar a um >ta!uleiro? de jogo da velha. import javax.swing.JFrame import java.awt.@rid7a9out import java.awt.event.4indow5dapter import java.awt.event.4indow6vent pu!lic class Velha " private static JFrame #rame $ new J#rame%&Jogo da Velha&' pu!lic static void main%(tring)* args' " // GridLayout cria um layout de rade do tipo !"! para o frame #rame.get8ontentPane%'.set7a9out%new @rid7a9out%=/='' // adiciona o evento ao frame #rame.add4indow7istener%new eventojanela%'' // determina o tamanho do frame #rame.set(i+e%,-./,0.' // torna o frame visvel #rame.setVisi!le%true' 1 /* * classe de eventos da janela */ private static class eventojanela extends 4indow5dapter " // mtodo para fechar a janela pu!lic void window8losing%4indow6vent e' " // mtodo para finalizar a aplicao (9stem.exit%.' 1 1 1 5parentemente no ocorreu nada/ pois ainda no adicionamos nada na grade. Vamos adicionar Aot;es. Vamos criar um vetor de B!jetos do tipo JAutton para adicionar C grade. No se esquecendo que todos os atri!utos devem ser est:ticos%static' para serem usados no pu!lic static void main%(tring args)*'. import javax.swing.JFrame import javax.swing.JAutton import java.awt.@rid7a9out import java.awt.event.4indow5dapter import java.awt.event.4indow6vent

pu!lic class Velha " private static JFrame #rame $ new J#rame%&Jogo da Velha&' // vetor de o#jetos da classe J$utton% private static JAutton !otoes)* $ new JAutton)D* pu!lic static void main%(tring)* args' " // GridLayout cria um layout de rade do tipo !"! para o frame #rame.get8ontentPane%'.set7a9out%new @rid7a9out%=/='' #or%int pos $ . %pos E D' posFF' " /* cria um novo o#jeto de J$utton para cada posio do vetor o &ma e&con serve para colocar ima ens no #oto' e"' ne( &ma e&con) *ima ens/#otao%jp * + /* !otoes)pos* $ new JAutton%new 3mage3con%&&'' // adiciona os #ot,es ao frame #rame.get8ontentPane%'.add%!otoes)pos*' 1 // adiciona o evento ao frame #rame.add4indow7istener%new eventojanela%'' // determina o tamanho do frame #rame.set(i+e%,-./,0.' // torna o frame visvel #rame.setVisi!le%true' 1 /* * classe de eventos da janela */ private static class eventojanela extends 4indow5dapter " // mtodo para fechar a janela pu!lic void window8losing%4indow6vent e' " // mtodo para finalizar a aplicao (9stem.exit%.' 1 1 1 5gora j: conseguimos ver os !ot;es sG que sem as imagens. VocH pode colocar qualquer imagem no local indicado no cGdigo/ que elas aparecero. <ma !oa idia iniciali+:Ilos com uma imagem somente com o #undo !ranco. 6 depois/ a medida que #or acontecendo as jogadas/ trocar a imagem por c2rculo ou xis/ mas para isto precisamos criar uma classe de eventos do mouse/ e adicionar o evento aos !ot;es. import javax.swing.JFrame import javax.swing.JAutton import java.awt.@rid7a9out import java.awt.event.4indow5dapter import java.awt.event.4indow6vent

pu!lic class Velha " private static JFrame #rame $ new J#rame%&Jogo da Velha&' // vetor de o#jetos da classe J$utton% private static JAutton !otoes)* $ new JAutton)D* pu!lic static void main%(tring)* args' " // GridLayout cria um layout de rade do tipo !"! para o frame #rame.get8ontentPane%'.set7a9out%new @rid7a9out%=/='' #or%int pos $ . %pos E D' posFF' " /* cria um novo o#jeto de J$utton para cada posio do vetor o &ma e&con serve para colocar ima ens no #oto' e"' ne( &ma e&con) *ima ens/#otao%jp * + */ !otoes)pos* $ new JAutton%new 3mage3con%&&'' // adiciona os #ot,es ao frame #rame.get8ontentPane%'.add%!otoes)pos*' 1 //adiciona o evento ao frame #rame.add4indow7istener%new eventojanela%'' //determina o tamanho do frame #rame.set(i+e%,-./,0.' //torna o frame visvel #rame.setVisi!le%true' 1 /* * classe de eventos da janela */ private static class eventojanela extends 4indow5dapter " // mtodo para fechar a janela pu!lic void window8losing%4indow6vent e' " // mtodo para finalizar a aplicao (9stem.exit%.' 1 1 /* * classe de eventos do mouse */ private static class 6ventoJouse implements 5ction7istener " /* atravs deste mtodo conse uimos sa#er o -ue foi clicado. entre outras coisas para maiores informa,es sempre v/lido dar uma olhada na 01& do Java% 2as o mtodo et3ource)+ retorna um o#jeto do -ue foi clicado e dando um castin ))J$utton+e% et3ource)++ conse uimos manipular o o#jeto J$utton clicado% */

pu!lic void actionPer#ormed%5ction6vent e' " /* com o mtodo set&con podemos modificar o &ma e&con. e conse-4entemente a ima em do #oto no caso a nova ima em ser/ #ola%jp % */ %%JAutton'e.get(ource%''.set3con%new 3mage3con%&imagesK!ola.jpg&'' 1 1 1 8om isso j: conseguimos #a+er a parte gr:#ica de um jogo da velha. 6nto daqui em diante pura lGgica... at a prGximaL

Вам также может понравиться