Buscar

APS_LPOO_JAVA_3-4_SEMESTRE_ANDERSON_VASCONCELOS

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

24
UNIVERSIDADE PAULISTA
ANDERSON HENRIQUE VASCONCELOS DE PAULA – 854581-2
DESENVOLVIMENTO DE UM JOGO COM UTILIZAÇÃO DE INTERFACE GRÁFICA
		
SÃO PAULO
2019
ANDERSON HENRIQUE VASCONCELOS DE PAULA – 854581-2
DESENVOLVIMENTO DE JOGO COM UTILIZAÇÃO DE INTERFACE GRÁFICA
Atividades Práticas Supervisionadas do curso de Ciência da Computação apresentado à Universidade Paulista.
Prof. Sylvio Peccinini e Prof. Saulo Rosa e Silva
SÃO PAULO
2019
SUMÁRIO
1. INTRODUÇÃO	7
2. OBJETIVO	8
3. REGRAS E FUNCIONAMENTO DO JOGO	9
3.1 Interfaces Gráficas em Java	9
3.2 Portabilidade	9
3.3 Look and Feel	10
3.4 Componentes	10
3.5 Tratamento de Eventos	13
4. DESENVOLVIMENTO	14
4.1 Ferramentas	15
5. PROJETO (ESTRUTURA) DO PROGRAMA.	17
6. CÓDIGO FONTE	18
6.1 Questões	18
6.2 JFrame	20
6.3 Border	21
REFERÊNCIAS BIBLIOGRÁFICAS	23
1. introdução
 	Atualmente a programação não está amplamente vinculada somente para o desenvolvimento de softwares corporativos, mas também no desenvolvimento de jogos para fins interativos como diversão ou de nível educacional para desenvolver aprendizado.
O Ensinamento de um jogo visa como as pessoas podem interagir com o próximo, respeitar regras, desenvolver a imaginação, cooperação, estratégias e com isso promover uma boa autoestima e desenvolvendo seus conhecimentos, também fazendo com que aprenda de forma simples e natural a resolver problemas, pensar, criar e desenvolver o senso crítico. Através da melhoria e do entendimento sobre o efeito que os jogos podem trazer visando e enriquecendo interações humanas. 
Hoje em dia podemos vincular muitas coisas do passado e introduzi-las na tecnologia podendo aprimorar cada vez mais no dia-a-dia na evolução tecnológica podendo desempenhar várias tarefas e técnicas de aprimoramento através da programação de computadores visando evoluir cada vez mais o uso mais favorável da tecnologia.
	
2. objetivo
Dada a amplitude no campo de estudo referente a Jogos Digitais e dada a possibilidade de estudo do conceito de interação, pôde ser estudado, dentro de um contexto especifico, o desenvolvimento de um jogo que utilizasse interface gráfica.
A estrutura do jogo será feita na linguagem Java, que trará o projeto (estrutura) do programa e todas as linhas de código explicando detalhadamente como foi desenvolvido o jogo. 
Este Trabalho será apresentado para fins acadêmicos e de pesquisa, utilizando a linguagem Java para desktop.
O projeto deste jogo, não tem somente a finalidade para este propósito, mas também podendo visar futuros projetos de desenvolvimento de jogos e demostrando seu foco de desenvolvimento, e como esta área da computação está atualmente situada no mercado de trabalho atual.
O proposito serve para uma grande fonte de pesquisa utilizando informações e técnicas de grande aceitação no mercado utilizando-as neste projeto.
O objetivo também auxilia também na divulgação dos objetivos de desenvolvimento do milênio, isto é, para fins didático, desenvolvimento e aprendizado.
	3. Regras e funcionamento do jogo
 3.1 INTERFACES GRÁFICAS EM JAVA
 	Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas: AWT e Swing. A AWT foi a primeira API para interfaces gráficas a surgir no Java e foi, mais tarde, superada pelo Swing (a partir do Java 1.2), que possui diversos benefícios em relação a seu antecessor.
As bibliotecas gráficas são bastante simples no que diz respeito a conceitos necessários para usá-las. A complexidade no aprendizado de interfaces gráficas em Java reside no tamanho das bibliotecas e no enorme mundo de possibilidades; isso pode assustar, em um primeiro momento.
AWT e Swing são bibliotecas gráficas oficiais inclusas em qualquer JRE ou JDK. Além destas, existem algumas outras bibliotecas de terceiros, sendo a mais famosa, o SWT - desenvolvida pela IBM e utilizada no Eclipse e em vários outros produtos.
3.2 PORTABILIDADE
As APIs de interface gráfica do Java favorecem, ao máximo, o lema de portabilidade da plataforma Java. O look-and-feel do Swing é único em todas as plataformas onde roda, seja ela Windows, Linux, ou qualquer outra. Isso implica que a aplicação terá exatamente a mesma interface (cores, tamanhos etc) em qualquer sistema operacional.
Grande parte da complexidade das classes e métodos do Swing está no fato da API ter sido desenvolvida tendo em mente o máximo de portabilidade possível. Favorece-se, por exemplo, o posicionamento relativo de componentes, em detrimento do uso de posicionamento fixo, que poderia prejudicar usuários com resoluções de tela diferentes da prevista.
Com Swing, não importa qual sistema operacional, qual resolução de tela, ou qual profundidade de cores: sua aplicação se comportará da mesma forma em todos os ambientes.
3.3 LOOK AND FEEL
 Look-and-Feel (ou LaF) é o nome que se dá à "cara" da aplicação (suas cores, formatos e etc). Por padrão, o Java vem com um look-and-feel próprio, que se comporta exatamente da mesma forma em todas as plataformas suportadas.
Mas, às vezes, esse não é o resultado desejado. Quando rodamos nossa aplicação no Windows, por exemplo, é bastante gritante a diferença em relação ao visual das aplicações nativas. Por isso é possível alterar qual o look-and-feel a ser usado em nossa aplicação.
Além do padrão do Java, o JRE 5 da Sun ainda traz LaF nativos para Windows e Mac OS, além do Motif e GTK. E, fora esses, você ainda pode baixar diversos LaF na Internet ou até desenvolver o seu próprio.
3.4 COMPONENTES
	O Swing traz muitos componentes para usarmos: botões, entradas de texto, tabelas, janelas, abas, scroll, árvores de arquivos e muitos outros. Durante o treinamento, veremos alguns componentes que nos ajudarão a fazer as telas do Argentum.
A biblioteca do Swing está no pacote javax.swing (inteira, exceto a parte de acessibilidade, que está em javax.accessibility).
Começando com Swing - Mensagens
A classe mais simples do Swing é a JOptionPane que mostra janelinhas de mensagens, confirmação e erros, entre outras.
Podemos mostrar uma mensagem para o usuário com a seguinte linha:
JOptionPane.showMessageDialog(null, "Minha mensagem!");
A classe JFileChooser é a responsável por mostrar uma janela de escolha de arquivos. É possível indicar o diretório inicial, os tipos de arquivos a serem mostrados, selecionar um ou vários e muitas outras opções.
Para mostrar a mensagem:
JFileChooser fileChooser = new JFileChooser();
fileChooser.showOpenDialog(null);
O argumento do showOpenDialog indica qual o componente pai da janela de mensagem (pensando em algum frame aberto, por exemplo, que não é nosso caso). Esse método retorna um int indicando se o usuário escolheu um arquivo ou cancelou. Se ele tiver escolhido um, podemos obter o File com getSelectedFile:
JFileChooser fileChooser = new JFileChooser();
int retorno = fileChooser.showOpenDialog(null);
if (retorno == JFileChooser.APPROVE_OPTION) {
 File file = fileChooser.getSelectedFile();
 // faz alguma coisa com arquivo
} else {
 // dialogo cancelado
}
 
Componentes: JFrame, JPanel e JButton
Os componentes mais comuns já estão frequentemente prontos e presentes na API do Swing. Contudo, para montar as telas que são específicas do seu projeto, será necessário compor alguns componentes mais básicos, como JFrames,JPanels, JButtons, etc.
A tela que vamos para o Argentum terá vários componentes. Para começarmos, faremos dois botões importantes: um dispara o carregamento do XML e outro permite ao usuário sair da aplicação.
Criar um componente do Swing é bastante simples! Por exemplo, para criar um botão:
JButton botao = new JButton("Carregar XML");
Contudo, esse botão apenas não faz nossa tela ainda. É preciso adicionar o botão para sair da aplicação. O problema é que, para exibirmos vários componentes organizadamente, é preciso usar um painel para agrupar esses componentes: o JPanel:
JButton botaoCarregar = new JButton("Carregar XML");
JButton botaoSair = new JButton("Sair");
JPanel painel = new JPanel();
painel.add(botaoCarregar);
painel.add(botaoSair);
Repare que a ordemem que os componentes são adicionados importa! Repare também que não definimos posicionamento algum para os nossos componentes: estamos usando o comportamento padrão dos painéis - falaremos mais sobre os layout managers logo mais.
3.5 TRATAMENTO DE EVENTOS
Até agora os botões que fizemos não têm efeito algum, já que não estamos tratando os eventos que são disparados no componente. E quando falamos de botões, em geral, estamos interessados em saber quando ele foi disparado(clicado). No linguajar do Swing, queremos saber quando uma ação (action) aconteceu com o botão.
Mas como chamar um método quando o botão for clicado? Como saber esse momento?
O Swing, como a maioria dos toolkits gráficos, nos traz o conceito de Listeners (ouvintes), que são interfaces que implementamos para sobrescrever métodos que serão disparados pelas ações sobre um botão, por exemplo. Os eventos do usuário são capturados pelo Swing que chama o método que implementamos.
No nosso caso, para fazer um método disparar ao clique do botão, usamos a interface ActionListener. Essa interface nos dá um método actionPerformed:
public void actionPerformed(ActionEvent e) {
 // ... tratamento do evento aqui...
}
Agora, precisamos indicar que essa ação (esse ActionListener) deve ser disparada quando o botão for clicado. Fazemos isso através do métodoaddActionListener, chamado no botão. Ele recebe como argumento um objeto que implementa ActionListener:
ActionListener nossoListener = ????;
botao.addActionListener(nossoListener);
A dúvida que fica é: onde implemento meu ActionListener? A forma mais simples e direta seria criar uma nova classe normal que implemente a interfaceActionListener e tenha o método actionPerformed. Depois basta dar new nessa classe e passar para o botão.
Essa forma funciona consideravelmente bem para botões que têm o mesmo comportamento em diversas telas do sistema, mas torna-se um problema para aqueles botões que devem chamar métodos diferentes de acordo com o contexto da página onde estão inseridos.
Pense, por exemplo em um botão de Ok: os métodos que precisam ser chamados quando um botão com esse texto é clicado podem ser os mais variados! Nesses casos, que são a maioria, o mais comum é encontrar a implementação dosActionListeners através de classes internas e anônimas.
Em uma tela grande frequentemente temos muitos componentes que disparam eventos e muitos eventos diferentes. Temos que ter um objeto de listener para cada evento e temos que ter classes diferentes para cada tipo de evento disparado.
Só que é muito comum que nossos listeners sejam bem curtos, em geral chamando algum método da lógica de negócios ou atualizando algum componente. E, nesses casos, seria um grande problema de manutenção criarmos uma classe top level para cada evento.
Voltando ao exemplo do botão Ok, seria necessário criar uma classe para cada um deles e, aí, como diferenciar os nomes desses botões: nomes de classes diferentes? Pacotes diferentes? Ambas essas soluções causam problemas de manutenibilidade.
O mais comum para tais casos é criarmos classes internas que manipula os componentes que desejamos tratar junto à classe principal.
Classes internas são classes declaradas dentro de outras classes:
public class Externa {
 public class Interna {
 
 }
}
Uma classe interna tem nome Externa.Interna pois faz parte do objeto da classe externa. A vantagem é não precisar de um arquivo separado e que classes internas podem acessar tudo que a externa possui (métodos, atributos etc). É possível até encapsular essa classe interna marcando-a como private. Dessa forma, apenas a externa pode enxergar.
Fora isso, são classes normais, que podem implementar interfaces, ter métodos, ser instanciadas etc.
Uma forma mais específica de classe interna é a chamada classe anônima que é muito vista em códigos com Swing. De forma simples, cria-se uma classe sem mesmo declarar seu nome em momento algum, isto é, o código public class SairListener implements ActionListener{ não existirá em lugar algum.
Em um primeiro momento, a sintaxe das classes anônimas pode assustar - tente não criar preconceitos. Vamos usar uma classe anônima para tratar o evento de clique no botão que desliga a aplicação:
JButton botaoSair = new JButton("Sair");
ActionListener sairListener = new ActionListener() {
 public void actionPerformed(ActionEvent e) {
 System.exit(0);
 }
};
botaoSair.addActionListener(sairListener);
Repare que precisamos de um objeto do tipo ActionListener para passar para nosso botão. Normalmente criaríamos uma nova classe para isso e daríamos newnela. Usando classes anônimas damos new e implementamos a classe ao mesmo tempo, usando a sintaxe que vimos acima.
E podemos simplificar mais ainda sem a variável local sairListener:
JButton botaoSair = new JButton("Sair");
botaoSair.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent e) {
 System.exit(0);
 }
});
Embora a sintaxe diga new ActionListener() sabemos que é impossível criar um objeto a partir de uma interface Java. O que essa sintaxe indica (e as chaves logo após o parêntesis indicam isso) é que estamos dando new em uma nova classe que implementa a interface ActionListener e possui o método actionPerformed cuja implementação chama o System.exit(0).
Como criamos uma classe no momento que precisamos, é comum nos perguntarmos qual é o nome dessa classe criada. A resposta para essa pergunta é exatamente a esperada: não sabemos! Ninguém definiu o nome para essa implementação particular de um ActionListener, então, por não ter nome definido, classes como essas são chamadas de classes anônimas.
4. DESENVOLVIMENTO
A aplicação desenvolvida tem por finalidade a elaboração de um jogo, estilo “Run”, que se encontra hoje em dia nos mais variados consoles, pois se trata de um jogo muito competitivo, trazendo com base um assunto de extrema importância, o Meio Ambiente, podendo ser utilizado em instituições de ensino ou palestras interativas, propondo um ambiente menos formal e que instiga o usuário a um rápido desenvolvimento através da competição, foram utilizadas toda a expertise adquirida em sala de aula, durante o curso de LPOO desenvolvendo uma aplicação (Jogo) em ambiente Java, demonstrando todas as aulas ministradas em pratica
6. CÓDIGO FONTE
Class Quiz
import java.awt.event.*;
import javax.swing.*;
public class Quiz extends JFrame implements ActionListener
{
	JLabel l;
	JRadioButton jb[]=new JRadioButton[5];
	JButton b1,b2;
	ButtonGroup bg;
	int count=0,current=0,x=1,y=1,now=0;
	int m[]=new int[10];	
	Quiz(String s)
	{
		super();
		l=new JLabel();
		add(l);
		bg=new ButtonGroup();
		for(int i=0;i<5;i++)
		{
			jb[i]=new JRadioButton();	
			add(jb[i]);
			bg.add(jb[i]);
		}
		b1=new JButton("Next");
		b2=new JButton("Bookmark");
		b1.addActionListener(this);
		b2.addActionListener(this);
		add(b1);add(b2);
		set();
		l.setBounds(30,40,450,20);
		jb[0].setBounds(50,80,100,20);
		jb[1].setBounds(50,110,100,20);
		jb[2].setBounds(50,140,100,20);
		jb[3].setBounds(50,170,100,20);
		b1.setBounds(100,240,100,30);
		b2.setBounds(270,240,100,30);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLayout(null);
		setLocation(250,100);
		setVisible(true);
		setSize(600,350);
	}
	private void setLayout(Object object) {
		// TODO Auto-generated method stub
		
	}
	private void setLocation(int i, int j) {
		// TODO Auto-generated method stub
		
	}
	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource()==b1)
		{
			if(check())
				count=count+1;
			current++;
			set();	
			if(current==9)
			{
				b1.setEnabled(false);
				b2.setText("Result");
			}
		}
		if(e.getActionCommand().equals("Bookmark"))
		{
			JButton bk=new JButton("Bookmark"+x);
			bk.setBounds(480,20+30*x,100,30);
			add(bk);
			bk.addActionListener(this);
			m[x]=current;
			x++;
			current++;
			set();	
			if(current==9)
				b2.setText("Result");
			setVisible(false);
			setVisible(true);
		}
		for(int i=0,y=1;i<x;i++,y++)
		{
		if(e.getActionCommand().equals("Bookmark"+y)){
			if(check())
				count=count+1;
			now=current;
			current=m[y];
			set();
			((JButton)e.getSource()).setEnabled(false);
			current=now;
		}
		}
	
		if(e.getActionCommand().equals("Result"))
		{
			if(check())
				count=count+1;
			current++;
			//System.out.println("correct ans="+count);
			JOptionPane.showMessageDialog(b1, this,"correct ans="+count, count);
			System.exit(0);
		}
	}
	void set()
	{
		jb[4].setSelected(true);
		if(current==0)
		{
			l.setText("Que1: O que é Reciclagem?");
			jb[0].setText("“Jogar fora” o lixo produzido");
			jb[1].setText("Coletar todo tipo de material existente em lixos recicláveis.");
			jb[2].setText("Nome dado para todo o processo do lixo após seu descarte.");
			jb[3].setText("Processo de transformação de materiais usados em novos produtos para consumo.");	
		}
		if(current==1)
		{
			l.setText("Que2: Como separar corretamente seu lixo?");
			jb[0].setText("Juntar tudo na lixeira, pois os prédios já fazem o trabalho de separação.");
			jb[1].setText("Separar o lixo orgânico (restos de alimentos, papel sujo e lixo sanitário) dos resíduos sólidos (como plástico, vidro, papel, metal e embalagens longa vida)");
			jb[2].setText("Deixar plásticos sujos junto com lixo orgânico.");
			jb[3].setText("Juntar todo tipo de lixo e descartar em ponto de coleta.");
		}
		if(current==2)
		{
			l.setText("Que3: O que é coleta seletiva?");
			jb[0].setText("Processo de separação e recolhimento dos resíduos para o reaproveitamento por meio de reciclagem");
			jb[1].setText("Destinação de resíduos para lixões e aterros.");
			jb[2].setText(" Processo de envio de todo lixo produzido para cooperativas ou entrega para catadores de rua.");
			jb[3].setText(" A escolha aleatória do melhor lixo produzido.");
		}
		if(current==3)
		{
			l.setText("Que4: O que fazer com o lixo eletrônico – pilhas, baterias e equipamentos quebrados? ");
			jb[0].setText("Recolher, organizar e armazenar em casa o máximo de tempo que der.");
			jb[1].setText("Juntar com plásticos e metais.");
			jb[2].setText("Jogar no lixo comum.");
			jb[3].setText("Procurar locais específicos para seu descarte.");
		}
		if(current==4)
		{
			l.setText("Que5: Uma das formas de colaborar com a preservação do meio ambiente é reduzir a produção de resíduos. Mas como?");
			jb[0].setText("ROptando pela compra de produtos com embalagens recicláveis.");
			jb[1].setText("Reutilizando os materiais e objetos sempre que possível.");
			jb[2].setText("Apoiando iniciativas de reciclagem.");
			jb[3].setText("Todas as anteriores");
		}
		if(current==5)
		{
			l.setText("Que6: Como consumir de forma consciente?");
			jb[0].setText("Trocando todos os nossos objetos sempre que um novo do mesmo tipo for lançado.");
			jb[1].setText("Usar a mangueira para lavar o quintal e o carro.");
			jb[2].setText("Utilizando os recursos naturais para satisfazer nossas necessidades e das gerações futuras.");
			jb[3].setText("Adquirindo qualquer tipo de produto se for barato.");
		}
		if(current==6)
		{
			l.setText("Que7: Como preservar árvores e florestas? ");
			jb[0].setText("Trocando todos os nossos objetos sempre que um novo do mesmo tipo for lançado.");
			jb[1].setText("Usar a mangueira para lavar o quintal e o carro.");
			jb[2].setText("Utilizando os recursos naturais para satisfazer nossas necessidades e das gerações futuras");
			jb[3].setText("Adquirindo qualquer tipo de produto se for barato.");
		}
		if(current==7)
		{
			l.setText("Que8: Qual dos gases abaixo não é conhecido como um dos gases do efeito estufa – GEE?");
			jb[0].setText("N2O – óxido nitroso");
			jb[1].setText("O2 – oxigênio");
			jb[2].setText("CO2 – dióxido de carbono ou gás carbônico");
			jb[3].setText("CH4 – metano");		
		}
		if(current==8)
		{
			l.setText("Que9: Qual dos elementos abaixo não é utilizado como fonte de energia? ");
			jb[0].setText("Água corrente");
			jb[1].setText("Petróleo");
			jb[2].setText("Barra de ferro");
			jb[3].setText("Sol");
		}
		if(current==9)
		{
			l.setText("Que10: Indique uma vantagem da energia solar ");
			jb[0].setText("Não polui");
			jb[1].setText(" Não é renovável.");
			jb[2].setText("É eficaz em qualquer clima.");
			jb[3].setText("É disponível a todo momento.");
		}
		l.setBounds(30,40,450,20);
		for(int i=0,j=0;i<=90;i+=30,j++)
			jb[j].setBounds(50,80+i,200,20);
	}
	boolean check()
	{
		if(current==0)
			return(jb[1].isSelected());
		if(current==1)
			return(jb[2].isSelected());
		if(current==2)
			return(jb[3].isSelected());
		if(current==3)
			return(jb[0].isSelected());
		if(current==4)
			return(jb[2].isSelected());
		if(current==5)
			return(jb[2].isSelected());
		if(current==6)
			return(jb[1].isSelected());
		if(current==7)
			return(jb[3].isSelected());
		if(current==8)
			return(jb[1].isSelected());
		if(current==9)
			return(jb[2].isSelected());
		return false;
	}
	
	{
		new Quiz("APS Quiz");
	}
}
Class JFrame
import java.awt.FlowLayout;
import javax.accessibility.Accessible;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel; 
public class JFrame { 
 public static final String EXIT_ON_CLOSE = null;
	public static void main(String s[]) { 
 JFrame frame = new JFrame(); 
 JPanel panel = new JPanel(); 
 panel.setLayout(new FlowLayout()); 
 JLabel label = new JLabel("JFrame By Example"); 
 JButton button = new JButton(); 
 button.setText("Button"); 
 panel.add(label); 
 panel.add(button); 
 frame.add(panel); 
 frame.setSize(200, 300); 
 frame.setLocationRelativeTo(null); 
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
 frame.setVisible(true); 
 }
	public void setDefaultCloseOperation(String exitOnClose) {
		
		// TODO Auto-generated method stub
		
	}
	protected void setVisible(boolean b) {
		// TODO Auto-generated method stub
		
	}
	private void setLocationRelativeTo(Object object) {
		// TODO Auto-generated method stub
		
	}
	public void setSize(int i, int j) {
		
		// TODO Auto-generated method stub
		
	}
	protected void add(Accessible jb) {
		// TODO Auto-generated method stub
		
	}
	public void add(JButton b1, String north) {
		// TODO Auto-generated method stub
		
	} 
} 
Class Border
import java.awt.*;
import javax.swing.*;
public class Border {
JFrame f;
Border(){
	f=new JFrame();
	
	JButton b1=new JButton("NORTH");;
	JButton b2=new JButton("SOUTH");;
	JButton b3=new JButton("EAST");;
	JButton b4=new JButton("WEST");;
	JButton b5=new JButton("CENTER");;
	
	f.add(b1,BorderLayout.NORTH);
	f.add(b2,BorderLayout.SOUTH);
	f.add(b3,BorderLayout.EAST);
	f.add(b4,BorderLayout.WEST);
	f.add(b5,BorderLayout.CENTER);
	
	f.setSize(300,300);
	f.setVisible(true);
}
public static void main(String[] args) {
	new Border();
}
}
Class JPanel
package javax.swing;
public class Jpanel {
}
REFERÊNCIAS BIBLIOGRÁFICAS
· <http://www.caelum.com.br/apostila-java-testes-xml-design- >
· COHEN, MARCELO "INTERFACE GRAFICA", 
http://www.inf.pucrs.br/flash/lapro2/lapro2_gui.pdf
· Desenvolvimento de Jogos Java <http://abrindoojogo.com.br/djj-index>
· Sun Microsystems 1990, "Network Programming Guide", Sun Microsystems, Inc., 1990.
· https://www.treinaweb.com.br/curso/java-desenvolvimento-de-jogos

Continue navegando