MaquinaDeEstadosMicroondas

MaquinaDeEstadosMicroondas


DisciplinaModelagem de Software19 materiais214 seguidores
Pré-visualização4 páginas
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 ? &quot;0&quot; + String.valueOf(seg) : String.valueOf(seg));
			visorMinutos.setText(min < 10 ? &quot;0&quot; + String.valueOf(min) : String.valueOf(min));
		}
		else if (min == 0 && seg == 0) {
		 visorMinutos.setText(&quot;&quot;);
		 visorSegundos.setText(&quot;&quot;);	
		}
	}
}
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(&quot;serial&quot;)
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) {