import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; /** * Genera una ventana para grabar archivos de audio. El boton * Detener funciona también como "cancelar" */ public class DialogoRec implements ActionListener { private JDialog dialogo; private JFrame owner; private JPanel panel; private JButton botonRec; private JButton botonStop; private JLabel instrucciones; private SimpleAudioRecorder recorder; private boolean recorded; private final int width = 230; private final int height = 90; /** * Genera los componentes graficos de la ventana de grabacion y asigna * Listeners a los botones corespondientes * @param f El marco del cual depende este Dialogo. Será el campo de JPostItFrame * @param sar El objeto SimpleAudioRecorder para generar la grabacion */ public DialogoRec(JFrame f, SimpleAudioRecorder sar) { recorder = sar; owner = f; botonRec = new JButton("Grabar"); botonStop = new JButton("Detener"); instrucciones = new JLabel("Oprima el boton para grabar y detener"); panel = new JPanel(); panel.add(instrucciones); panel.add(botonRec); panel.add(botonStop); recorded = false; botonRec.addActionListener(this); botonStop.addActionListener(this); dialogo = new JDialog(owner, "Grabacion de mensaje de Voz", true); dialogo.setSize(width, height); dialogo.setDefaultCloseOperation(dialogo.EXIT_ON_CLOSE); dialogo.getContentPane().add(panel); dialogo.setVisible(true); } /** * Escucha los botones de Grabacion y Detener. * En este metodo se llama efectivamente los metodos start y stopRecording del * objeto SimpleAudioRecorder * @param a El ActionEvent asociado. */ public void actionPerformed(ActionEvent a) { if (a.getSource() == botonRec) { recorded = true; recorder.start(); } if (a.getSource() == botonStop) { recorder.stopRecording(); dialogo.dispose(); } } /** * Permite saber el estado de la grabacion * @return Verdadero si se ha realizado una grabacion */ public boolean isRecorded() { return recorded; } }//end class