Baixe o app para aproveitar ainda mais
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(); } }
Compartilhar