import java.awt.*; import java.awt.event.*; import javax.swing.*; /** * Clase heredada de JFrame generadora del frame. * Esta clase crea un menu en el cual se puede abrir una ventana * con informacion sobre los autores y se puede cerrar la aplicacion. * @author Daniel Acevedo, Francisco Barros. * @version v1.0 */ public class SinteFrame extends JFrame { /** * Panel Principal de la aplicacion. */ public SintePanel pn; /** * Constructor de la clase creaFrame */ public SinteFrame() { // seccion que setea tamaƱo de la ventana y posicion setSize(750,760); setLocation(100,40); setTitle("Sintetizador"); // Creacion del Menu: JMenuBar menbar = new JMenuBar(); JMenu menu = new JMenu("Accion"); JMenuItem MenuAbout = new JMenuItem("About"); JMenuItem MenuExit = new JMenuItem("Exit"); // Implementacion de los Action Listeners del Menu: MenuAbout.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ aboutWindow abw = new aboutWindow(); abw.setVisible(true);};}); MenuExit.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ System.exit(0);};}); // Adicion de los menus creados al frame. menu.add(MenuAbout); menu.add(MenuExit); menbar.add(menu); setJMenuBar(menbar); //Creacion del Panel Principal pn = new SintePanel(); Container contentPane = getContentPane(); contentPane.add(pn); } } /** * Clase generadora de un frame para una ventana secundaria. Este frame se * encarga de mostrar informacion sobre los autores del prorama. */ class aboutWindow extends JFrame { /** * Constructor de la clase aboputWindow */ public aboutWindow() { Toolkit kit = Toolkit.getDefaultToolkit(); Dimension screenSize = kit.getScreenSize(); int screenWidth = screenSize.width; int screenHeight = screenSize.height; setSize(150,150); setLocation(screenWidth/4,screenHeight/4); setTitle("About"); abwCont cp = new abwCont(); Container contentPane = getContentPane(); contentPane.add(cp); } } /** * Clase generadora de un panel para la ventana secundaria. * En este panel se insertan etiquetas de texto con la * informacion que se despliega en la ventana secundaria. */ class abwCont extends JPanel { // Creacion etiquetas de texto que se mostraran en la ventana. JLabel titulo = new JLabel(" ELO-329 D.P.O.O."); JLabel blnk = new JLabel(" \n "); JLabel auto = new JLabel(" Autores Proyecto: "); JLabel aut1 = new JLabel(" * Daniel Acevedo "); JLabel aut2 = new JLabel(" * Francisco Barros "); JPanel PanCentral; /** * Constructor de la clase abwCont. */ public abwCont() { // Insercion etiquetas de texto. PanCentral = new JPanel(); PanCentral.setLayout(new BoxLayout(PanCentral, BoxLayout.Y_AXIS)); PanCentral.add(blnk); PanCentral.add(auto); PanCentral.add(aut1); PanCentral.add(aut2); setLayout(new BorderLayout()); add(titulo, BorderLayout.NORTH); add(PanCentral, BorderLayout.CENTER); } }