Buscar

MaquinaDeEstadosMicroondas e Trabalho 1 Modelagem de Software

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Trab3/.classpath
 
	 
	 
	 
Trab3/.project
 
	 Trab3
	 
	 
	
	 
		 
			 org.eclipse.jdt.core.javabuilder
			 
			
		
	
	 
		 org.eclipse.jdt.core.javanature
	
Trab3/.settings/org.eclipse.jdt.core.prefs
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6
Trab3/1.JPG
Trab3/2.JPG
Trab3/bin/controle/Principal.class
package controle;
public synchronized class Principal {
 public void Principal();
 public static void main(String[]);
}
Trab3/bin/controle/TratadorBotaoControle.class
package controle;
public synchronized class TratadorBotaoControle implements java.awt.event.ActionListener {
 private javax.swing.JButton botaoAcao;
 private modelo.Microondas microondas;
 public void TratadorBotaoControle(javax.swing.JButton, modelo.Microondas);
 public void actionPerformed(java.awt.event.ActionEvent);
}
Trab3/bin/controle/TratadorBotaoNumeros.class
package controle;
public synchronized class TratadorBotaoNumeros implements java.awt.event.ActionListener {
 private javax.swing.JTextArea visorMinutos;
 private javax.swing.JTextArea visorSegundos;
 private javax.swing.JButton botao;
 private modelo.Microondas microondas;
 public void TratadorBotaoNumeros(modelo.Microondas, javax.swing.JTextArea, javax.swing.JTextArea, javax.swing.JButton);
 public void actionPerformed(java.awt.event.ActionEvent);
 private boolean atualizarVisor(javax.swing.JTextArea, int);
}
Trab3/bin/controle/Validador.class
package controle;
public final synchronized class Validador {
 private void Validador();
 public static boolean validarTamanhoMaximo(javax.swing.JTextArea, int);
 public static boolean validarTempo(javax.swing.JTextArea);
 public static boolean validarUltimoDigito(javax.swing.JTextArea, int);
}
Trab3/bin/modelo/Aquecendo.class
package modelo;
public synchronized class Aquecendo extends MicroondasState {
 public void Aquecendo();
 public MicroondasState pause();
 public MicroondasState open();
 public MicroondasState timeOver();
}
Trab3/bin/modelo/EmEspera.class
package modelo;
public synchronized class EmEspera extends MicroondasState {
 public void EmEspera();
 public MicroondasState setTime(int, int);
}
Trab3/bin/modelo/Microondas.class
package modelo;
public synchronized class Microondas extends java.util.Observable implements java.awt.event.ActionListener {
 private int minutos;
 private int segundos;
 private boolean portaFechada;
 private javax.swing.Timer timer;
 private MicroondasState estadoMicroondas;
 public void Microondas();
 public void actionPerformed(java.awt.event.ActionEvent);
 public void setTime(int, int);
 public void start();
 public void open();
 public void close();
 public void pause();
 public void decrementarTempo();
 public int getMinutos();
 void setMinutos(int);
 public int getSegundos();
 void setSegundos(int);
 public boolean getPortaFechada();
 void setPortaFechada(boolean);
 void startTime();
 void stopTimer();
}
Trab3/bin/modelo/MicroondasState.class
package modelo;
public abstract synchronized class MicroondasState {
 protected static Microondas microondas;
 public void MicroondasState();
 public static MicroondasState getInitialState(Microondas);
 public MicroondasState pause();
 public MicroondasState open();
 public MicroondasState timeOver();
 public MicroondasState start();
 public MicroondasState close();
 public MicroondasState setTime(int, int);
}
Trab3/bin/modelo/ParadoComPortaAberta.class
package modelo;
public synchronized class ParadoComPortaAberta extends MicroondasState {
 public void ParadoComPortaAberta();
 public MicroondasState pause();
 public MicroondasState close();
}
Trab3/bin/modelo/ParadoComPortaFechada.class
package modelo;
public synchronized class ParadoComPortaFechada extends MicroondasState {
 public void ParadoComPortaFechada();
 public MicroondasState pause();
 public MicroondasState open();
 public MicroondasState start();
}
Trab3/bin/visao/FramePrincipal.class
package visao;
public synchronized class FramePrincipal extends javax.swing.JFrame {
 public final int LARGURA;
 public final int ALTURA;
 javax.swing.JPanel painelControle;
 javax.swing.JPanel painelVisual;
 public void FramePrincipal(PainelControle, PainelVisual);
}
Trab3/bin/visao/PainelControle.class
package visao;
public synchronized class PainelControle extends javax.swing.JPanel implements java.util.Observer {
 private javax.swing.JPanel painelLabels;
 private javax.swing.JPanel painelBotoes;
 private javax.swing.JPanel painelVisor;
 private javax.swing.JPanel painelBotoesAcoes;
 private java.awt.Label minutos;
 private java.awt.Label segundos;
 private java.awt.Label doisPontos;
 private javax.swing.JButton start;
 private javax.swing.JButton pause;
 private javax.swing.JButton open;
 private javax.swing.JTextArea visorMinutos;
 private javax.swing.JTextArea visorSegundos;
 private javax.swing.JButton botao1;
 private javax.swing.JButton botao2;
 private javax.swing.JButton botao3;
 private javax.swing.JButton botao4;
 private javax.swing.JButton botao5;
 private javax.swing.JButton botao6;
 private javax.swing.JButton botao7;
 private javax.swing.JButton botao8;
 private javax.swing.JButton botao9;
 private javax.swing.JButton botao0;
 private javax.swing.JButton botaoCentralizador;
 private modelo.Microondas microondas;
 public void PainelControle(modelo.Microondas);
 private void montaTela();
 public void update(java.util.Observable, Object);
 private void updateBotaoPorta();
 private void updateTime();
}
Trab3/bin/visao/PainelVisual.class
package visao;
public synchronized class PainelVisual extends javax.swing.JPanel implements java.util.Observer {
 private java.awt.Image portaAberta;
 private java.awt.Image portaFechada;
 private java.io.File arquivoImagemPA;
 private java.io.File arquivoImagemPF;
 private java.awt.Graphics2D g2d;
 private modelo.Microondas microondas;
 public void PainelVisual(modelo.Microondas);
 public void importaImagem();
 protected void paintComponent(java.awt.Graphics);
 public void update(java.util.Observable, Object);
}
Trab3/src/controle/Principal.java
package controle;
import javax.swing.JFrame;
import modelo.Microondas;
import visao.FramePrincipal;
import visao.PainelControle;
import visao.PainelVisual;
public class Principal {
 public static void main(String[] args) {
 Microondas microondas = new Microondas();
 PainelControle painelControle = new PainelControle(microondas);
 PainelVisual painelVisual = new PainelVisual(microondas);
 microondas.addObserver(painelControle);
 microondas.addObserver(painelVisual);
 JFrame framePrincipal = new FramePrincipal(painelControle, painelVisual);
 framePrincipal.setVisible(true);
 }
}
Trab3/src/controle/TratadorBotaoControle.java
package controle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import modelo.Microondas;
public class TratadorBotaoControle implements ActionListener {
 private JButton botaoAcao;
 private Microondas microondas;
 public TratadorBotaoControle(JButton botaoAcao, Microondas microondas) {
 this.botaoAcao = botaoAcao;
 this.microondas = microondas;
 }
 public void actionPerformed(ActionEvent e) {
 String labelBotao = botaoAcao.getText();
 if (labelBotao.equals("OPEN")) {
 microondas.open();
 } else if (labelBotao.equals("CLOSE")) {
 microondas.close();
 } else if (labelBotao.equals("START")) {
 microondas.start();
 } else if (labelBotao.equals("PAUSE")) {
 microondas.pause();
 }
 }
}
Trab3/src/controle/TratadorBotaoNumeros.java
package controle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JTextArea;
import modelo.Microondas;
public class TratadorBotaoNumeros implements ActionListener {
 private JTextArea visorMinutos;
 private JTextArea visorSegundos;
 private JButton botao;
 private Microondas microondas;
 public TratadorBotaoNumeros(Microondas microondas, JTextArea visorMinutos, JTextArea visorSegundos, JButton botao) {
 this.visorMinutos = visorMinutos;
 this.visorSegundos = visorSegundos;
 this.botao = botao;
 this.microondas = microondas;
 }
 public void actionPerformed(ActionEvent e) {
 String charNumero = botao.getText();
 int numero = Integer.parseInt(charNumero);
 
 if (Validador.validarTamanhoMaximo(visorMinutos, 2)) {
 atualizarVisor(visorMinutos, numero);
 }
 else if (Validador.validarTamanhoMaximo(visorSegundos, 2)){
 if(atualizarVisor(visorSegundos, numero) && Validador.validarUltimoDigito(visorSegundos, 2)){
 try {
 	int minutos = Integer.parseInt(visorMinutos.getText());
 	int segundos = Integer.parseInt(visorSegundos.getText());
 	if(minutos > 0 || segundos > 0)
 		microondas.setTime(minutos, segundos);
 } catch (NumberFormatException ex) {
 } 
 }
 }
 }
	private boolean atualizarVisor(JTextArea visor, int numero) {
		visor.setText(visor.getText() + Integer.toString(numero));
		if (!Validador.validarTempo(visor)) {
		 visor.setText("");
		 return false;
		}
		return true;
	}
}
Trab3/src/controle/Validador.java
package controle;
import javax.swing.JTextArea;
public final class Validador {
 private Validador() {
 }
 public static boolean validarTamanhoMaximo(JTextArea visor, int tamanhoMaximo) {
 if (visor.getText().length() < tamanhoMaximo) {
 return true;
 }
 return false;
 }
 public static boolean validarTempo(JTextArea visor) {
 int tempo = Integer.parseInt(visor.getText());
 if (tempo <= 59) {
 return true;
 }
 return false;
 }
 
 public static boolean validarUltimoDigito(JTextArea visor, int tamanhoMaximo) {
 if (visor.getText().length() == tamanhoMaximo) {
 return true;
 }
 return false;
 }
}
Trab3/src/modelo/Aquecendo.java
package modelo;
public class Aquecendo extends MicroondasState{
	
 public MicroondasState pause() {
 	microondas.stopTimer();
 return new ParadoComPortaFechada();
 }
 public MicroondasState open() {
 	microondas.stopTimer();
 return new ParadoComPortaAberta();
 }
 public MicroondasState timeOver() {
 return new EmEspera();
 }
}
Trab3/src/modelo/EmEspera.java
package modelo;
public class EmEspera extends MicroondasState {
 
 public MicroondasState setTime(int minutos, int segundos){
 	
 	microondas.setMinutos(minutos);
 	microondas.setSegundos(segundos);
 	
 	if(microondas.getPortaFechada())
 		return new ParadoComPortaFechada();
 	
 	return new ParadoComPortaAberta();
 }
}
Trab3/src/modelo/Microondas.java
package modelo;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Observable;
import javax.swing.Timer;
public class Microondas extends Observable implements ActionListener {
 private int minutos;
 private int segundos;
 private boolean portaFechada;
 private Timer timer;
 private MicroondasState estadoMicroondas;
 public Microondas() {
 minutos = 0;
 segundos = 0;
 portaFechada = true;
 timer = new Timer(1000, this);
 estadoMicroondas = MicroondasState.getInitialState(this);
 }
 
 public void actionPerformed(ActionEvent e) {
 	if(estadoMicroondas instanceof Aquecendo)
 		decrementarTempo();
 }
 
 public void setTime(int minutos, int segundos) {
 	estadoMicroondas = estadoMicroondas.setTime(minutos, segundos);
 setChanged();
 notifyObservers(estadoMicroondas);
 }
 public void start() {
 estadoMicroondas = estadoMicroondas.start();
 setChanged();
 notifyObservers(estadoMicroondas);
 }
 
 public void open() {
 	portaFechada = false;
 	estadoMicroondas = estadoMicroondas.open();
 setChanged();
 notifyObservers(estadoMicroondas);
 }
 
 public void close() {
 	portaFechada = true;
 	estadoMicroondas = estadoMicroondas.close();
 setChanged();
 notifyObservers(estadoMicroondas);
 }
 
 public void pause() {
 	estadoMicroondas = estadoMicroondas.pause();
 setChanged();
 notifyObservers(estadoMicroondas);
 }
 
 public void decrementarTempo() {
 if (segundos == 0 && minutos > 0) {
 minutos--;
 segundos = 59;
 } else if (segundos > 0){
 segundos--;
 }
 if (minutos == 0 && segundos == 0) {
 estadoMicroondas = estadoMicroondas.timeOver();
 }
 setChanged();
 notifyObservers(estadoMicroondas);
 }
 public int getMinutos() {
 return minutos;
 }
 void setMinutos(int minutos) {
 this.minutos = minutos;
 }
 public int getSegundos() {
 return segundos;
 }
 void setSegundos(int segundos) {
 this.segundos = segundos;
 }
 
 public boolean getPortaFechada() {
 return portaFechada;
 }
 void setPortaFechada(boolean portaFechada) {
 this.portaFechada = portaFechada;
 }
 
 void startTime() {
 	timer.start();
 }
 
 void stopTimer(){
 	timer.stop();
 }
}
Trab3/src/modelo/MicroondasState.java
package modelo;
public abstract class MicroondasState {
	
	protected static Microondas microondas;
	
	public static MicroondasState getInitialState(Microondas m) {
		microondas = m;
		return new EmEspera();
	}
 public MicroondasState pause() {
 	return this;
 }
 public MicroondasState open() {
 	return this;
 }
 public MicroondasState timeOver() {
 	return this;
 }
 public MicroondasState start() {
 	return this;
 }
 
 public MicroondasState close() {
 	return this;
 }
 
 public MicroondasState setTime(int minutos, int segundos) {
 	return this;
 }
 
}
Trab3/src/modelo/ParadoComPortaAberta.java
package modelo;
public class ParadoComPortaAberta extends MicroondasState{
 public MicroondasState pause() {
 	microondas.stopTimer();
 	microondas.setMinutos(0);
 	microondas.setSegundos(0);
 return new EmEspera();
 }
 public MicroondasState close() {
 return new ParadoComPortaFechada();
 }
}
Trab3/src/modelo/ParadoComPortaFechada.java
package modelo;
public class ParadoComPortaFechada extends MicroondasState{
 public MicroondasState pause() {
 	microondas.stopTimer();
 	microondas.setMinutos(0);
 	microondas.setSegundos(0);
 return new EmEspera();
 }
 public MicroondasState open() {
 	return new ParadoComPortaAberta();
 }
 public MicroondasState start() {
 	microondas.startTime();
 return new Aquecendo();
 }
}
Trab3/src/visao/FramePrincipal.java
package visao;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class FramePrincipal extends JFrame {
 
 public final int LARGURA = 700;
 public final int ALTURA = 333;
 JPanel painelControle;
 JPanel painelVisual;
 public FramePrincipal(PainelControle painelControle, PainelVisual painelVisual) {
 setVisible(true);
 setSize(LARGURA, ALTURA);
 setTitle("Forno de Microondas");
 setDefaultCloseOperation(EXIT_ON_CLOSE);
 setResizable(false);
 setLayout(new BorderLayout(30 , 30));
 getContentPane().add(BorderLayout.EAST , painelControle);
 getContentPane().add(BorderLayout.CENTER , painelVisual);
 }
}
Trab3/src/visao/PainelControle.java
package visao;
import controle.TratadorBotaoControle;
import controle.TratadorBotaoNumeros;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Label;
import java.util.Observable;
import java.util.Observer;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import modelo.Microondas;
@SuppressWarnings("serial")
public class PainelControle extends JPanel implements Observer {
 private JPanel painelLabels;
 private JPanel painelBotoes;
 private JPanel painelVisor;
 private JPanel painelBotoesAcoes;
 private Label minutos;
 private Label segundos;
 private Label doisPontos;
 private JButton start;
 private JButton pause;
 private JButton open;
 private JTextArea visorMinutos;
 private JTextArea visorSegundos;
 private JButton botao1;
 private JButton botao2;
 private JButton botao3;
 private JButton botao4;
 private JButton botao5;
 private JButton botao6;
 private JButton botao7;
 private JButton botao8;
 private JButton botao9;
 private JButton botao0;
 private JButton botaoCentralizador;
 private Microondas microondas;
 public PainelControle(Microondas microondas) {
 this.microondas = microondas;
 setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
 montaTela();
 }
 private void montaTela() {
 minutos = new Label("MINUTOS");
 segundos = new Label("SEGUNDOS");
 minutos.setAlignment(Label.CENTER);
 segundos.setAlignment(Label.CENTER);
 painelLabels = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 5));
 painelLabels.add(minutos);
 painelLabels.add(segundos);
 visorMinutos = new JTextArea(1, 2);
 visorSegundos = new JTextArea(1, 2);
 doisPontos = new Label(":");
 doisPontos.setFont(new Font("", Font.BOLD, 30));
 visorMinutos.setEditable(false);
 visorSegundos.setEditable(false);
 visorMinutos.setBackground(getBackground());
 visorSegundos.setBackground(getBackground());
 visorMinutos.setFont(new Font("", Font.BOLD, 30));
 visorSegundos.setFont(new Font("", Font.BOLD, 30));
 painelVisor = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 5));
 painelVisor.add(visorMinutos);
 painelVisor.add(doisPontos);
 painelVisor.add(visorSegundos);
 painelBotoes = new JPanel(new GridLayout(4, 3, 5, 5));
 botao1 = new JButton("1");
 botao2 = new JButton("2");
 botao3 = new JButton("3");
 botao4 = new JButton("4");
 botao5 = new JButton("5");
 botao6 = new JButton("6");
 botao7 = new JButton("7");
 botao8 = new JButton("8");
 botao9 = new JButton("9");
 botao0 = new JButton("0");
 botaoCentralizador = new JButton();
 botaoCentralizador.setVisible(false);
 botao1.addActionListener(new TratadorBotaoNumeros(microondas, visorMinutos, visorSegundos, botao1));
 botao2.addActionListener(new TratadorBotaoNumeros(microondas, visorMinutos, visorSegundos, botao2));
 botao3.addActionListener(new TratadorBotaoNumeros(microondas, visorMinutos, visorSegundos, botao3));
 botao4.addActionListener(new TratadorBotaoNumeros(microondas, visorMinutos, visorSegundos, botao4));
 botao5.addActionListener(new TratadorBotaoNumeros(microondas, visorMinutos, visorSegundos, botao5));
 botao6.addActionListener(new TratadorBotaoNumeros(microondas, visorMinutos, visorSegundos, botao6));
 botao7.addActionListener(new TratadorBotaoNumeros(microondas, visorMinutos, visorSegundos, botao7));
 botao8.addActionListener(new TratadorBotaoNumeros(microondas, visorMinutos, visorSegundos, botao8));
 botao9.addActionListener(new TratadorBotaoNumeros(microondas, visorMinutos, visorSegundos, botao9));
 botao0.addActionListener(new TratadorBotaoNumeros(microondas, visorMinutos, visorSegundos, botao0));
 painelBotoes.add(botao1);
 painelBotoes.add(botao2);
 painelBotoes.add(botao3);
 painelBotoes.add(botao4);
 painelBotoes.add(botao5);
 painelBotoes.add(botao6);
 painelBotoes.add(botao7);
 painelBotoes.add(botao8);
 painelBotoes.add(botao9);
 painelBotoes.add(botaoCentralizador);
 painelBotoes.add(botao0);
 painelBotoesAcoes = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 5));
 start = new JButton("START");
 pause = new JButton("PAUSE");
 open = new JButton("OPEN");
 start.addActionListener(new TratadorBotaoControle(start, microondas));
 pause.addActionListener(new TratadorBotaoControle(pause, microondas));
 open.addActionListener(new TratadorBotaoControle(open, microondas));
 painelBotoesAcoes.add(start);
 painelBotoesAcoes.add(pause);
 painelBotoesAcoes.add(open);
 
 add(painelLabels);
 add(painelVisor);
 add(painelBotoes);
 add(painelBotoesAcoes);
 }
 public void update(Observable o, Object arg) {
 	
 updateTime();
 updateBotaoPorta();
 
 this.repaint();
 }
	private void updateBotaoPorta() {
		if (microondas.getPortaFechada()) {
 open.setText("OPEN");
 } else {
 open.setText("CLOSE");
 }
	}
	private void updateTime() {
		int min = microondas.getMinutos();
		int seg = microondas.getSegundos();
		
		if (min > 0 || seg > 0) {
			visorSegundos.setText(seg < 10 ? "0" + String.valueOf(seg) : String.valueOf(seg));
			visorMinutos.setText(min < 10 ? "0" + String.valueOf(min) : String.valueOf(min));
		}
		else if (min == 0 && seg == 0) {
		 visorMinutos.setText("");
		 visorSegundos.setText("");	
		}
	}
}
Trab3/src/visao/PainelVisual.java
package visao;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import java.util.Observable;
import java.util.Observer;
import javax.imageio.ImageIO;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import modelo.Microondas;
@SuppressWarnings("serial")
public class PainelVisual extends JPanel implements Observer {
 private Image portaAberta;
 private Image portaFechada;
 private File arquivoImagemPA;
 private File arquivoImagemPF;
 private Graphics2D g2d;
 private Microondas microondas;
 public PainelVisual(Microondas microondas) {
this.microondas = microondas;
 arquivoImagemPF = new File("1.JPG");
 arquivoImagemPA = new File("2.JPG");
 importaImagem();
 }
 public void importaImagem() {
 try {
 portaAberta = ImageIO.read(arquivoImagemPA);
 portaFechada = ImageIO.read(arquivoImagemPF);
 } catch (IOException ex) {
 JOptionPane.showMessageDialog(null, "ERRO IRRECUPERAVEL!! Impossivel carregar a imagem!!!");
 } catch (Exception ex) {
 JOptionPane.showMessageDialog(null, "ERRO inesperado!");
 }
 }
 @Override
 protected void paintComponent(Graphics g) {
 super.paintComponent(g);
 g2d = (Graphics2D) g;
 if (microondas.getPortaFechada()) {
 g2d.drawImage(portaFechada, 15, 35, 402, 222, this);
 } else {
 g2d.drawImage(portaAberta, 0, 0, 459, 330, this);
 }
 }
 public void update(Observable o, Object arg) {
 this.repaint();
 }
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando