import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; /** * Esta clase genera un marco que contendra los paneles y objetos * Swing de la interfaz. Ademas, configura el menu y escucha las * acciones de este*/ public class JPostItFrame implements ActionListener { /** * El Administrador que contiene este JPostItFrame */ private Administrator admin; /** * El marco que contendra los componentes graficos */ private JFrame marco; /** * Instancia de Contenedor para insertar los botones, labels, etc. */ private Contenedor panel; /** * La barra de menu de este marco */ private JMenuBar barra = new JMenuBar(); /** * El menu Archivo */ private JMenu archivo = new JMenu("Archivo"); /** * El menu Tiempo */ private JMenu tiempo = new JMenu("Tiempo"); /** * Los items de los dos menues disponibles */ private JMenuItem salir, unMin, cincoMin, diezMin, treintaMin, unaHora, arbitrario; /** * Constructor. Configura el menú y agrega el Contenedor. * @param a El Administrador que contiene a este frame */ public JPostItFrame(Administrator a) { admin = a; marco = new JFrame(); panel = new Contenedor(admin); salir = new JMenuItem("Salir"); unMin = new JMenuItem("1 Minuto"); cincoMin = new JMenuItem("5 Minutos"); diezMin = new JMenuItem("10 Minutos"); treintaMin = new JMenuItem("30 Minutos"); unaHora = new JMenuItem("60 Minutos"); arbitrario = new JMenuItem("Escoger ..."); archivo.add(salir); tiempo.add(unMin); tiempo.add(cincoMin); tiempo.add(diezMin); tiempo.add(treintaMin); tiempo.add(unaHora); tiempo.add(arbitrario); barra.add(archivo); barra.add(tiempo); marco.setJMenuBar(barra); unMin.addActionListener(this); cincoMin.addActionListener(this); diezMin.addActionListener(this); treintaMin.addActionListener(this); unaHora.addActionListener(this); arbitrario.addActionListener(this); salir.addActionListener(this); panel.setBackground(new Color(130, 120 ,210)); marco.setSize(303, 218); marco.setTitle("Java Post It"); marco.setDefaultCloseOperation(marco.EXIT_ON_CLOSE); marco.setContentPane(panel); marco.setVisible(true); } /** * Decodifica las acciones del menu. Se efectuan los cambios del * label status en Conetenedor. * @param e El ActionEvent de oprimir un item de menu */ public void actionPerformed( ActionEvent e) { if(e.getSource() == salir) { marco.dispose(); } if(e.getSource() == unMin) { panel.setStatus("1 Minuto"); } if(e.getSource() == cincoMin) { panel.setStatus("5 Minutos"); } if(e.getSource() == diezMin) { panel.setStatus("10 Minutos"); } if(e.getSource() == treintaMin) { panel.setStatus("30 Minutos"); } if(e.getSource() == unaHora) { panel.setStatus("60 Minutos"); } if(e.getSource() == arbitrario) { String msg = JOptionPane.showInputDialog(marco, "Introduzca el tiempo en minutos", "Seleccion de Tiempo", JOptionPane.OK_CANCEL_OPTION); panel.setStatus(msg+" Minutos"); } } /** * Retorna el marco de este JPostItFrame * @return marco El Frame que contiene los componentes y el menu */ public JFrame getMarco() { return marco; } /** * Retorna el panel de este JPostItFrame * @return panel El Contenedor que se introdujo en este marco */ public Contenedor getPanel() { return panel; } }