A traves de la pagina de chuidiang he visto que daba una guia de como montar nuestro propio editor de textos con Java, en este caso es un editor muy sencillo pero que en mi caso personal me abre todo un mundo ya que estoy más acostumbrado a utilizar Java unicamente como back-end y utilizo otros frameworks para el front-end, en estos momentos para ser exactos estoy usando Flex en mi día a día.
Lo primero es generar la ventana con todos sus elementos, pero como eso nos dejaria una función principal demasiado pesada lo que tenemos que hacer es generar un constructor que divida los problemas para que los separe y los trate de manera personal.
Y por eso nuestro constructor quedaria de la siguiente manera
public LDEditor() { JMenuBar barraMenu = new JMenuBar(); areaTexto = new JTextArea(30, 90); buildFileMenu(barraMenu); buildEditMenu(barraMenu); JFrame frame = buildEditorWindow(barraMenu); viewWindow(frame); }
JTextArea solicita dos parametros de tipo integer para poder definir cuanto tiene que medir, en mi caso quiero que se visualicen treinta lineas y noventa columnas "JTextArea(int rows, int columns)"
Ahora generaremos todo el codigo para crear el menu correspondiente a "Archivo".
En este menu incluiremos las tres opciones basicas: Salvar, cargar y Salir.
Para ello creamos los tres items del menu, despues creamos el menu propiamente dicho y le añadiremos los tres items.
Tras esto añadimos todo el menu a la barra de menu que hemos recibido por parametro.
private void buildFileMenu(JMenuBar barraMenu) { JMenuItem salvar = new JMenuItem("Salvar"); JMenuItem cargar = new JMenuItem("Cargar"); JMenuItem salir = new JMenuItem("Salir"); JMenu menuArchivo = new JMenu("Archivo"); menuArchivo.add(salvar); menuArchivo.add(cargar); menuArchivo.add(salir); barraMenu.add(menuArchivo); }
Ahora haremos el mismo proceso para el menu de edicion.
En este caso hay una modificación, y es que para separar la opcion de buscar y de las que editan el texto hemos metido un separador, para ello se ha introducido " menuEditar.add(new JSeparator());" se añade como un item más y ya que no vamos a hacer nada más con él no hace falta crearlo como variable
private void buildEditMenu(JMenuBar barraMenu) { JMenuItem buscar = new JMenuItem("Buscar"); JMenuItem copiar = new JMenuItem("Copiar"); JMenuItem cortar = new JMenuItem("Cortar"); JMenuItem pegar = new JMenuItem("Pegar"); JMenu menuEditar = new JMenu("Editar"); menuEditar.add(buscar); menuEditar.add(new JSeparator()); menuEditar.add(cortar); menuEditar.add(copiar); menuEditar.add(pegar); barraMenu.add(menuEditar); }
Ahora vamos a juntar todo para crear un JFrame
private JFrame buildEditorWindow(JMenuBar barraMenu) { JFrame frame = new JFrame("Test de editor de Liem Dazkun"); //El menú va en la parte superior, frame.getContentPane().add(barraMenu, BorderLayout.NORTH); //El comando que activa / desactiva el ajuste de linea areaTexto.setLineWrap(true); //El comando que hace que el ajuste de linea se haga donde haya un espacion en blanco. areaTexto.setWrapStyleWord(true); JScrollPane scroll = new JScrollPane(areaTexto); // El scroll con el JTextArea se añade por defecto en el centro del BorderLayout. frame.getContentPane().add(scroll); return frame; }
Finalmente cargamos y lanzamos toda la pantalla para que se pueda visualizar.
private void viewWindow(JFrame frame) { // Para salir del programa en caso de pulsar el aspa de la esquina superior derecha de la ventana. frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // La ventana coge el tamaño justo para que se vean completamente todos los componentes frame.pack(); // Se obtienen las dimensiones en pixels de la pantalla. Dimension pantalla = Toolkit.getDefaultToolkit().getScreenSize(); // Se obtienen las dimensiones en pixels de la ventana. Dimension ventana = frame.getSize(); // Una cuenta para situar la ventana en el centro de la pantalla. frame.setLocation( (pantalla.width - ventana.width) / 2, (pantalla.height - ventana.height) / 2); // Se visualiza la ventana. frame.setVisible(true); }
0 comentarios: (+add yours?)
Publicar un comentario