Editortexto
Upcoming SlideShare
Loading in...5
×
 

Editortexto

on

  • 370 views

codigo java de un editor de texto

codigo java de un editor de texto

Statistics

Views

Total Views
370
Views on SlideShare
370
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Editortexto Editortexto Document Transcript

  • import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.io.*;public class Edit extends JFrame { //Inicializacion del tama ño de la fuente int tama ño=20; //Para explorar directorios para abrir y guardar archivos JFileChooser fileChooser = null; //Para escribir texto JEditorPane editPane; //Scroll del lado derecho JScrollPane scrollPaneRight; //Scroll del lado izquierdo JScrollPane scrollPaneLeft; //Panel izquierdo donde va la lista de archivo abiertos JPanel leftPanel; //La barra del Menu JMenuBar menuBar; //El menu JMenu MArchivo; JMenu MEdicion; //Los items del menu JMenuItem MNuevo; JMenuItem MAbrir; JMenuItem MGuardar; JMenuItem MSalir; JMenuItem MImprimir; JMenuItem MCortar; JMenuItem MPegar; JMenuItem MBuscar; JMenuItem MCopiar; JMenuItem Fuente; //Contenedor con division izquierda derecha JSplitPane splitPane; //El panel del estado y sus mensajes JPanel statusPanel; JLabel statusMsg1; JLabel statusMsg2; //Tool bar JToolBar toolBar; //Todos los botones JButton BCortar; JButton BAbrir; JButton BGuardar; JButton BCopiar; JButton BPegar; JButton BNuevo;
  • JButton BImprimir; JButton openSelectedButton; private JComboBox tFuente; private Font areaFuente; private JScrollPane scroll; //cajas de texto JTextArea Texto = new JTextArea(); JTextArea Errores=new JTextArea(6,1); String Copiar=""; //La lista que se despliega en el lado izquierdo JList list; //Vector para almacenar los archivos abiertos Vector fileVector = new Vector(); String fileName; boolean isSaved = false; //Clase interna para manejar los eventos class EventHandler implements ActionListener { public void actionPerformed(ActionEvent e) { //Si se elige salir en el menu if (e.getSource() == MSalir) { //Si el archivo abierto no esta en blanco y no esta guardado if (!isSaved && !editPane.getText().equals("")) askSave(); System.exit(0); } //Si se elige abrir un archivo en el menu o con el boton de abrir en eltoolbar if (e.getSource() == MAbrir || e.getSource() == BAbrir) { //misma verificacion anterior if (!isSaved && !editPane.getText().equals("")) askSave(); openFile(); } //Si se elige en el menu editar un archivo en blanco if (e.getSource() == MNuevo) { //idem if (!isSaved && !editPane.getText().equals("")) askSave(); newFile(); } //Si se elige guardar en el menu o en el toolbar if (e.getSource() == MGuardar || e.getSource() == BGuardar) saveFile();
  • if (e.getSource() == BCopiar || e.getSource() == MCopiar) editPane.copy(); if (e.getSource() == BCortar || e.getSource() == MCortar) editPane.cut(); if (e.getSource() == BPegar|| e.getSource() == MPegar ) editPane.paste(); if(e.getSource()==MImprimir || e.getSource()==BImprimir) { imprimir(); } //Si se elige el boton abrir la lista del lado izquierdo if (e.getSource() == openSelectedButton) openFile(); }; }; ActionListener eventHandler = new EventHandler();public Edit(String title){ super(title);}//Agrega un archivo a la lista de la izquierdapublic void agregaLista(String file){ if (fileVector.contains(file)) return; fileVector.add(file); Collections.sort(fileVector); list.setListData(fileVector);}//Dialogo que verifica si el usuario desea guardar el archivopublic void askSave(){ //Componente que muestra ventanas de opciones JOptionPane optionPane=new JOptionPane(); Object[] opciones={"S Ì","No"}; //Dialogo modal SI_NO int ret=optionPane.showOptionDialog(this,"Desea guardar?","Pregunta",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,null,opciones,opciones[0]); //Si la opcion escogida es Si if(ret==JOptionPane.YES_OPTION) saveFile(); }//Suscribe los objetos al manejador de eventos eventHandlerpublic void initConnections(){ MNuevo.addActionListener(eventHandler); MAbrir.addActionListener(eventHandler); MGuardar.addActionListener(eventHandler); MSalir.addActionListener(eventHandler); MImprimir.addActionListener(eventHandler); MCopiar.addActionListener(eventHandler); MPegar.addActionListener(eventHandler);
  • MBuscar.addActionListener(eventHandler); tFuente.addActionListener(eventHandler); BAbrir.addActionListener(eventHandler); BGuardar.addActionListener(eventHandler); BCopiar.addActionListener(eventHandler); BCortar.addActionListener(eventHandler); BPegar.addActionListener(eventHandler); BImprimir.addActionListener(eventHandler); openSelectedButton.addActionListener(eventHandler);}//Inicializa las componentes de la aplicacionpublic void initialize(){ //Define que el Layout del contenedor sea de tipo BorderLayout this.getContentPane().setLayout(new BorderLayout()); // Clase anonima para que la aplicacion se cierre al apretar la X (boton esquinasuperior derecha) this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { if (!isSaved && !editPane.getText().equals("")) askSave(); System.exit(0); } }); /*****JMenuBar*****/ menuBar = new JMenuBar(); MArchivo = new JMenu("Archivo"); MNuevo= new JMenuItem("Nuevo"); MAbrir= new JMenuItem("Abrir"); MGuardar= new JMenuItem("Guardar"); MSalir= new JMenuItem("Salir"); MImprimir= new JMenuItem("Imprimir"); MEdicion= new JMenu("Edicion"); MCopiar=new JMenuItem("Copiar"); MPegar=new JMenuItem("Pegar"); MBuscar=new JMenuItem("Buscar"); areaFuente = new Font("Arial", Font.PLAIN, tama ño); Texto.setFont(areaFuente); scroll= new JScrollPane(Texto); getContentPane().add(scroll,BorderLayout.CENTER); JPanel panel= new JPanel(); JPanel panel1= new JPanel(); JPanel panel2= new JPanel(); panel.setBackground(Color.lightGray);
  • panel1.setBackground(Color.lightGray); panel2.setBackground(Color.lightGray); getContentPane().add(panel,BorderLayout.SOUTH); getContentPane().add(panel1,BorderLayout.WEST); getContentPane().add(panel2,BorderLayout.EAST);//Agrega los items al menuMArchivo.add(MNuevo);MArchivo.add(MAbrir);MArchivo.add(MGuardar);MArchivo.addSeparator();MArchivo.add(MSalir);MArchivo.add(MImprimir);MEdicion.add(MCopiar);MEdicion.add(MPegar);MEdicion.add(MBuscar);//Agrega el menu a la barra de menumenuBar.add(MArchivo);menuBar.add(MEdicion);//Setea esa bara de menu para el framethis.setJMenuBar(menuBar);/*****JToolBar*****/toolBar = new JToolBar();BAbrir = new JButton();BAbrir.setIcon(new ImageIcon(getClass().getResource("/open.gif")));BAbrir.setMargin(new Insets(0, 0, 0, 0));toolBar.add(BAbrir);BGuardar = new JButton();BGuardar.setIcon(new ImageIcon(getClass().getResource("/save.gif")));BGuardar.setMargin(new Insets(0, 0, 0, 0));toolBar.add(BGuardar);toolBar.addSeparator();BCopiar = new JButton();BCopiar.setIcon(new ImageIcon(getClass().getResource("/copy.gif")));BCopiar.setMargin(new Insets(0, 0, 0, 0));toolBar.add(BCopiar);BCortar = new JButton();BCortar.setIcon(new ImageIcon(getClass().getResource("/cut.gif")));BCortar.setMargin(new Insets(0, 0, 0, 0));toolBar.add(BCortar);BPegar = new JButton();BPegar.setIcon(new ImageIcon(getClass().getResource("/paste.gif")));BPegar.setMargin(new Insets(0, 0, 0, 0));toolBar.add(BPegar);toolBar.addSeparator();
  • BImprimir= new JButton(); BImprimir.setIcon(new ImageIcon(getClass().getResource("/impresora.gif"))); BImprimir.setMargin(new Insets(0, 0, 0, 0)); toolBar.add(BImprimir); toolBar.addSeparator(); tFuente= new JComboBox(); tFuente.addItem("Tama ño Fuente"); tFuente.addItem("10"); tFuente.addItem("20"); tFuente.addItem("30"); tFuente.addItem("40"); tFuente.addItem("50"); tFuente.addItem("Personalizar"); tFuente.setToolTipText("Tama ño de fuente"); tFuente.addItemListener( new ItemListener () { public void itemStateChanged(ItemEvent e) { int elegido; elegido=tFuente.getSelectedIndex(); switch (elegido) { case 1: areaFuente= new Font("Arial", Font.PLAIN, 10); Texto.setFont(areaFuente); break; case 2: areaFuente= new Font("Arial", Font.PLAIN, 20); Texto.setFont(areaFuente); break; case 3: areaFuente= new Font("Arial", Font.PLAIN, 30); Texto.setFont(areaFuente); break; case 4: areaFuente= new Font("Arial", Font.PLAIN, 40); Texto.setFont(areaFuente); break; case 5: areaFuente= new Font("Arial", Font.PLAIN, 50); Texto.setFont(areaFuente); break; case 6: tama ño=Integer.parseInt(JOptionPane.showInputDialog("Digite el tama ño de lafuente"));
  • areaFuente= new Font("Arial", Font.PLAIN,tama ño); Texto.setFont(areaFuente); break; } } } ); toolBar.add(tFuente); //Agrega el toolbar en el norte del contenedor this.getContentPane().add(toolBar, BorderLayout.NORTH); /*****Status bar*****/ statusPanel = new JPanel(); statusPanel.setLayout(new BorderLayout()); statusMsg1 = new JLabel("Estado: "); statusMsg2 = new JLabel(); statusPanel.add(statusMsg1, BorderLayout.WEST); statusPanel.add(statusMsg2, BorderLayout.CENTER); //Agrega el panel de satus al sur del contenedor this.getContentPane().add(statusPanel, BorderLayout.SOUTH); /*****Text Editor*****/ editPane = new JEditorPane(); editPane.setText(""); scrollPaneRight = new JScrollPane(editPane); /*****List*****/ list=new JList(); scrollPaneLeft=new JScrollPane(list); openSelectedButton=new JButton("Abrir"); /*****leftPanel*****/ leftPanel=new JPanel(new BorderLayout()); leftPanel.add(scrollPaneLeft,BorderLayout.CENTER); leftPanel.add(openSelectedButton,BorderLayout.SOUTH); /*****Split Panel*****/ //Define un contenedor con division izq-der splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); splitPane.setRightComponent(scrollPaneRight); splitPane.setLeftComponent(leftPanel); this.getContentPane().add(splitPane, BorderLayout.CENTER);}public static void main(java.lang.String[] args){ Edit aplication = new Edit("Editor De Texto Miguel A. Montano V."); aplication.initialize(); aplication.initConnections(); aplication.pack();
  • aplication.setSize(700, 500); aplication.setLocation(100, 100); aplication.setVisible(true);}//Para abrir un nuevo archivo en blancopublic void newFile(){ editPane.setText(""); isSaved=false;}//Para abrir un achivo existentepublic void openFile(){ //Si no existe el file chooser, crea uno if (fileChooser == null) { fileChooser = new JFileChooser(); } //Valor que retorna al elegir una opcion en el file chooser int retVal = fileChooser.showOpenDialog(this); //Si se escogio Ok, (o abrir) if (retVal == fileChooser.APPROVE_OPTION) { //El path absoluto del archivo elegido fileName = fileChooser.getSelectedFile().getAbsolutePath(); try { //Pasa el nombre del archivo a URL java.net.URL url = fileChooser.getSelectedFile().toURL(); statusMsg2.setText("abriendo " + fileName); //Abre el archivo elegido en el panel de texto editPane.setPage(url); isSaved = false; //Se agrega el archivo abierto a la lista de la izquierda agregaLista("" + fileName); } catch (Exception ioe) { statusMsg2.setText(ioe.getMessage()); } }}//Abre el archivo seleccionado en la lista de la izquierdapublic void openSelectedFile(){ if(list.getSelectedIndex()==-1) return; int ndx=list.getSelectedIndex(); try { String name=(String)fileVector.get(ndx); java.net.URL url=(new java.io.File(name)).toURL();
  • editPane.setPage(url); } catch(Exception e) { statusMsg2.setText(e.getMessage()); }}void imprimir () { String todo=Texto.getText(); PrintJob pjob = getToolkit().getPrintJob(this,"Imprimir Hoja",null); Graphics pg= pjob.getGraphics(); pg.setFont(new Font("SansSerif",Font.PLAIN,10)); pg.drawString("Imprimido:",100,100); int inicio=0; int numlineas=1; for (int i=0; i<todo.length();i++) { if((int) todo.charAt(i)==10) { pg.drawString(todo.substring(inicio,i-1),100,100 + (15 *numlineas)); inicio=i+1; numlineas ++; } } pg.drawString (todo.substring(inicio,todo.length()),100,100 + (15 *numlineas)); pg.dispose (); //Finalizar pagina pjob.end(); //Termina trabajo y escupe pagina }//Guarda el archivo que esta en el panel de textopublic void saveFile(){ //Utiliza un file chooser para explorar donde guardarlo //Si no existe, crea uno if (fileChooser == null) { fileChooser = new JFileChooser(); } int retVal = fileChooser.showSaveDialog(this); if (retVal == fileChooser.APPROVE_OPTION) { fileName = fileChooser.getSelectedFile().getAbsolutePath(); try { statusMsg2.setText("Guardando "+fileName); //Toma el texto que hay en el panel de texto String text=editPane.getText(); java.io.FileWriter fileWriter=new java.io.FileWriter(fileName); java.io.BufferedWriter br = new java.io.BufferedWriter(fileWriter); br.write(text);
  • br.close(); isSaved=true; //Agrega el archivo a la lista de la izquierda agregaLista(""+fileName); } catch (Exception ioe) { statusMsg2.setText(ioe.getMessage()); } }}