|
jchiricoc - CODIGO DE PROYECTO
|
|
|
CODIGO DE NUESTRO PROYECTO FINAL DE PROGRAMACION
Este es el codigo del editor de texto, terminado Y presentado por completo.
para que este codigo funcione a la prefeccion, hay que descargar una carpeta donde contiene las imagenes y otros codigo de utilidad para que funcione porque solo este codigo no funciona.
Les dejo el link para que lo descarguen la carpeta y el codigo completo,el .jary el manual de usuario, espero que les sirva de ayuda
atte: creadores de la aplicacion.
jeremias chiricoc
alex rivera
alvin lima
LINK:
CODIGO COMPLETO: http://www.mediafire.com/?lurf5mrc8fwp6l2#1
CODIGO DEL .JAR: http://www.mediafire.com/?22qmakg4xn5zir5#1
MANUAL DE USUARIO: http://www.mediafire.com/?g01d00f8wa63p8a#1
codigo:
import
java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JComponent;
import javax.swing.event.*;
import javax.swing.text.Caret;
import javax.swing.text.Highlighter;
import javax.swing.border.TitledBorder;
// aca implementamos todo lo q va a llevar nuestra ventana
public class Editor //extends JFrame
{
JFrame ventana;
//-----Paneles Principales----
JPanel jpPrincipal;
JScrollPane jpLectura;
//-------Componentes---------
JButton jbPath;
JTextArea jtaDatos;
//-------Menu---------
JMenuBar jmbMenuBar;
JMenu jmArchivo;
JMenu jmEdicion;
JMenu jmFormat;
JMenu jmAyuda;
//menu Archivo
JMenuItem jmiAbrir;
JMenuItem jmiNuevo;
JMenuItem jmiGuardar;
JMenuItem jmiGuardarComo;
JMenuItem jmiImprimir;
JMenuItem jmiSalir;
/*menu Edición*/
JMenuItem jmiAjusteLinea;
// JMenuItem jmiedicionon;
JMenuItem jmiReemplazar;
JMenuItem jmiCopiar;
JMenuItem jmiPegar;
JMenuItem jmiCortar;
//formato
JMenuItem jmiFuente;
/*menu Ayuda*/
JMenuItem jmiAcerca;
// para los botones de la barra de tarea
JToolBar jtbHerramientas;
JButton jbGuardar;
JButton jbGuardarComo;
JButton jbImprimir;
JButton jbNuevo;
JButton jbAbrir;
JButton jbReemplazar;
JButton jbJustificar;
JButton jbFuente;
JButton jbCopiar;
JButton jbPegar;
JButton jbCortar;
//------------------------------------------
String nombreFichero;
OperacionesFichero ref;
Fuente fFuente;
//Constructor
//aca empezamos a crear nuestro editor
public Editor()
{
ventana=new JFrame("EDITOR version 1.0 SYSTEM BETA");
ventana.setIconImage(new ImageIcon("umg.jpg").getImage());
ref=new OperacionesFichero();
inicializaPaneles();
inicializaComponentes();
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.setVisible(true);
ventana.setSize(1300,900);
nombreFichero=ref.getPath();
System.out.println("Path fichero-->"+ref.getPath());
menuPrincipal();
barraHerramientas();
actualiza();
}
/*
Constructor
directorio path del fichero a abrir al iniciar
*/
public Editor(String directorio)
{
ventana=new JFrame("Editor");
ventana.setIconImage(new ImageIcon("umg.jpg").getImage());
ref=new OperacionesFichero();
nombreFichero=directorio;
inicializaPaneles();
inicializaComponentes();
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.setVisible(true);
ventana.setSize(1000,1000);
ref.verificaFichero(directorio);
leeFichero(directorio);
System.out.println("Path fichero-->"+ref.getPath()+"=>"+nombreFichero);
ventana.setTitle(nombreFichero);
menuPrincipal();
/*
int i =JOptionPane.showConfirmDialog(null,"¿ Desea gurdar los cambios?","Confirmar Salida",JOptionPane.YES_NO_OPTION);
if(i==0){
//metodo q cuarda el archivo
System.exit(0);
}
*/
actualiza();
}
// Implementa un menu en la parte, superior del editor.
public void menuPrincipal()
{
jmbMenuBar=new JMenuBar();
jmbMenuBar.setBorder(new PanelBorder(Color.BLACK,""));
jmArchivo=new JMenu("Archivo");
menuArchivo();
jmEdicion=new JMenu("Edición");
menuEdicion();
jmFormat= new JMenu("Formato");
menuFormat();
jmAyuda=new JMenu("Ayuda");
menuAyuda();
jmbMenuBar.add(jmArchivo);
jmbMenuBar.add(jmEdicion);
jmbMenuBar.add(jmFormat);
jmbMenuBar.add(jmAyuda);
ventana.setJMenuBar(jmbMenuBar);
}
//Implementa los submenus itms del menu "Archivo"
public void menuArchivo()
{
jmiAbrir=new JMenuItem("Abrir",new ImageIcon("folder-horizontal-open.png"));
jmiAbrir.addActionListener(new EscuchaAbrir());
jmArchivo.add(jmiAbrir);
jmiNuevo=new JMenuItem("Nuevo",new ImageIcon("page_2.png"));
jmiNuevo.addActionListener(new EscuchaNuevo());
jmArchivo.add(jmiNuevo);
jmArchivo.addSeparator();
jmiGuardar=new JMenuItem("Guardar",new ImageIcon("disk.png"));
jmiGuardar.addActionListener(new EscuchaGuardar());
jmArchivo.add(jmiGuardar);
jmiGuardarComo=new JMenuItem("Guardar Como",new ImageIcon("drive_disk.png"));
jmiGuardarComo.addActionListener(new EscuchaGuardarComo());
jmArchivo.add(jmiGuardarComo);
jmArchivo.addSeparator();
jmiImprimir=new JMenuItem("Imprimir",new ImageIcon("imprimir.gif"));
jmiImprimir.addActionListener(new EscuchaImprimir());
jmArchivo.add(jmiImprimir);
jmArchivo.addSeparator();
jmiSalir=new JMenuItem("Salir",new ImageIcon("cross-circle.png"));
jmiSalir.addActionListener(new EscuchaSalir());
jmArchivo.add(jmiSalir);
}
/**
* Implementa los submenus items del menu "Edición"
* */
public void menuEdicion()
{
jmiReemplazar=new JMenuItem("Reemplazar",new ImageIcon("textfield_rename.png"));
jmiReemplazar.addActionListener(new EscuchaReemplaza());
jmEdicion.add(jmiReemplazar);
jmEdicion.addSeparator();
jmiAjusteLinea=new JMenuItem("Justificar",new ImageIcon("text_align_justify.png"));
jmiAjusteLinea.addActionListener(new EscuchaJustificar());
jmEdicion.add(jmiAjusteLinea);
jmiCopiar=new JMenuItem("Copiar",new ImageIcon("page_2_copy.png"));
jmiCopiar.addActionListener(new EscuchaCopia());
jmEdicion.add(jmiCopiar);
jmiPegar=new JMenuItem("Pegar",new ImageIcon("broom.png"));
jmiPegar.addActionListener(new EscuchaPega());
jmEdicion.add(jmiPegar);
jmiCortar=new JMenuItem("Cortar",new ImageIcon("cut.png"));
jmiCortar.addActionListener(new EscuchaCorta());
jmEdicion.add(jmiCortar);
}
//IMPLEMENTA LO DE LA FUENTE
public void menuFormat()
{
jmiFuente=new JMenuItem("Fuente",new ImageIcon("font.png"));
jmiFuente.addActionListener(new EscuchaFuente());
jmFormat.add(jmiFuente);
}
// Implementa los items del menu "Ayuda"
public void menuAyuda()
{
jmiAcerca=new JMenuItem("Acerca de..",new ImageIcon("help.png"));
jmiAcerca.addActionListener(new EscuchaAcercaDe());
jmAyuda.add(jmiAcerca);
}
//para la barra de tarea
public void barraHerramientas()
{
jtbHerramientas = new JToolBar("");
// jtbHerramientas.setBorder(new PanelBorder(""));
jbNuevo=new JButton(new ImageIcon("page_2.png"));
jbNuevo.addActionListener(new EscuchaNuevo());
jtbHerramientas.add(jbNuevo);
jbAbrir=new JButton(new ImageIcon("folder-horizontal-open.png"));
jbAbrir.addActionListener(new EscuchaAbrir());
jtbHerramientas.add(jbAbrir);
jbImprimir=new JButton(new ImageIcon("Imprimir.gif"));
jbImprimir.addActionListener(new EscuchaImprimir());
jtbHerramientas.add(jbImprimir);
jtbHerramientas.addSeparator(new Dimension(10,25));
jbGuardar=new JButton(new ImageIcon("disk.png"));
jbGuardar.addActionListener(new EscuchaGuardar());
jtbHerramientas.add(jbGuardar);
jbGuardarComo=new JButton(new ImageIcon("drive_disk.png"));
jbGuardarComo.addActionListener(new EscuchaGuardarComo());
jtbHerramientas.add(jbGuardarComo);
jtbHerramientas.addSeparator(new Dimension(10,25));
jbReemplazar=new JButton(new ImageIcon("textfield_rename.png"));
jbReemplazar.addActionListener(new EscuchaReemplaza());
jtbHerramientas.add(jbReemplazar);
jtbHerramientas.addSeparator(new Dimension(10,25));
jbJustificar=new JButton(new ImageIcon("text_align_justify.png"));
jbJustificar.addActionListener(new EscuchaJustificar());
jtbHerramientas.add(jbJustificar);
jbFuente=new JButton(new ImageIcon("font.png"));
jbFuente.addActionListener(new EscuchaFuente());
jtbHerramientas.add(jbFuente);
jtbHerramientas.addSeparator(new Dimension(10,25));
jbCopiar=new JButton(new ImageIcon("page_2_copy.png"));
jbCopiar.addActionListener(new EscuchaCopia());
jtbHerramientas.add(jbCopiar);
jbPegar=new JButton(new ImageIcon("broom.png"));
jbPegar.addActionListener(new EscuchaPega());
jtbHerramientas.add(jbPegar);
jbCortar=new JButton(new ImageIcon("cut.png"));
jbCortar.addActionListener(new EscuchaCorta());
jtbHerramientas.add(jbCortar);
jpPrincipal.add(jtbHerramientas, BorderLayout.PAGE_START);
actualiza();
}
/*
Carga los datos de un fichero al area de texto.
directorio
exception IOException
*/
public void leeFichero(String directorio)
{
try
{
jtaDatos.read(new InputStreamReader(new FileInputStream(directorio)), null);
nombreFichero=directorio;
}
catch (IOException ex)
{
System.out.println("-->Error al leer fichero ");
}
}
//Inicializa los paneles
public void inicializaPaneles()
{
jpPrincipal=new JPanel();
jpPrincipal=(JPanel) ventana.getContentPane();
jpPrincipal.setBackground(new Color(70,130,180));
jpPrincipal.setLayout(new BorderLayout());
}
//Inicializa los componentes
public void inicializaComponentes()
{
System.out.println(nombreFichero);
jtaDatos=new JTextArea("");
jtaDatos.setLineWrap(true); //si quiero que cuando llegue al fin del panel salte a la siguiente linea
jpLectura=new JScrollPane(jtaDatos);
jpLectura.setBackground(new Color(70,130,180));
jpPrincipal.add(jpLectura,BorderLayout.CENTER);
actualiza();
}
// Actualiza los paneles
public void actualiza()
{
jpLectura.updateUI();
jpPrincipal.updateUI();
}
//Cambia el titulo de la ventana principal
public void setTitle(String title)
{
ventana.setTitle(title);
}
/*
Clase que implementa la interfáz
ActionListener, para cuando queremos abrir un fichero
AbrirFichero
*/
//ESCUCHADORES
public class EscuchaAbrir implements ActionListener
{
AbrirFichero abrir =new AbrirFichero(nombreFichero);
public void actionPerformed(ActionEvent e)
{
if(abrir.menu())
{
nombreFichero=abrir.getNombreFichero();
leeFichero(nombreFichero);
System.out.println("-->"+abrir.getNombreFichero());
}
}
}
/*
Clase que implementa la interfáz
ActionListener, para cuando queremos guardar un fichero
EscribeFichero
* */
public class EscuchaGuardar implements ActionListener
{
EscribeFichero escribe=new EscribeFichero();
public void actionPerformed(ActionEvent e)
{
escribe.guardar(nombreFichero, jtaDatos);
nombreFichero=escribe.getPathFichero();
setTitle(nombreFichero);
}
}
/*
Clase que implementa la interfáz
ActionListener, para cuando queremos guardar un fichero
GuardarComo
*/
public class EscuchaGuardarComo implements ActionListener
{
GuardarComo guardar=new GuardarComo();
public void actionPerformed(ActionEvent e)
{
guardar.guardar(nombreFichero, jtaDatos);
nombreFichero=guardar.getPathFichero();
setTitle(nombreFichero);
}
}
public class EscuchaImprimir implements ActionListener
{
PrintJob pjob;
Graphics pagina;
public void actionPerformed (ActionEvent e)
{
String todo=jtaDatos.getText();
pjob = Toolkit.getDefaultToolkit().getPrintJob(new Frame(), "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 (); //Final
pjob.end(); //Termina trabajo
}
}
/*
Clase que implementa la interfáz
ActionListener, para cuando queremos recargar un fichero
*/
public class EscuchaActualizar implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(nombreFichero!=null)
{
jtaDatos.setText("");
leeFichero(nombreFichero);
}
else
{
nombreFichero="";
}
}
}
/*
Clase que implementa la interfáz
ActionListener, para cuando queremos salir del editor
exception Throwable
*/
public class EscuchaSalir implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.out.println("-.-.->Menu/Salir pulsado, saliendo.....");
try
{
int i =JOptionPane.showConfirmDialog(null,"¿desea guardar cambios ....guade antes de salir?", "Salir", JOptionPane.YES_NO_OPTION);
System.out.println("n-->selección: "+i);
if (i==1)
{
System.out.println("nt-->Salir=si");
System.exit(1);
}
else
{
System.out.println("nt-->Salir=no");
}
}
catch(Throwable ex)
{
System.err.println("-.->Error al cerrar");
}
}
}
/*
Clase que implementa la interfáz
ActionListener, para cuando queremos crear un nuevo fichero
GuardarComo
*/
public class EscuchaNuevo implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
setTitle(nombreFichero);
leeFichero(nombreFichero);
}
}
/*
Clase que implementa la interfáz
ActionListener, para cuando queremos justificar el texto escrito
*/
public class EscuchaJustificar implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(jtaDatos.getLineWrap())
{
jtaDatos.setLineWrap(false);
}
else
{
jtaDatos.setLineWrap(true);
}
}
}
/*
Clase que implementa la interfáz
ActionListener, para copiar un texto seleccionado
*/
public class EscuchaCopia implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
jtaDatos.copy();
}
}
/*
Clase que implementa la interfáz
ActionListener, para pegar un texto copiado
*/
public class EscuchaPega implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
jtaDatos.paste();
}
}
/**
* Clase que implementa la interfáz
* ActionListener, para cortar un texto seleccionado
* */
public class EscuchaCorta implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
jtaDatos.cut();
}
}
/*
Clase que implementa la interfáz
ActionListener, para reemplazar un texto seleccionado
*/
public class EscuchaReemplaza implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
try
{
String resguardo=jtaDatos.getSelectedText();
String reemplaza=(String) JOptionPane.showInputDialog(null,"Reemplazar por:","Reemplazar",JOptionPane.OK_CANCEL_OPTION,new ImageIcon("textfield_rename.png"),null,null);
if(reemplaza!=null)
{
resguardo=reemplaza;
}
jtaDatos.replaceSelection(resguardo);
}
catch(Exception ex)
{
System.out.println("-->error de conversión");
}
}
}
// Instancia un objeto de la clase ayuda
public class EscuchaAcercaDe implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
new AcercaDeEditor(ventana,"Acerca de..");
}
}
//------------------------------------------------------
public class EscuchaFuente implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
fFuente=new Fuente(ventana,"Fuente");
}
}
//FUENTE
public class Fuente
{
//-Contenedores
JDialog jdInterfaz;
JPanel jpPrincipal;
JPanel jpTipoLetra;
JPanel jpConfiguracion;
JPanel jpTamanio;
JScrollPane jpEjemplo;
JPanel jpBotones;
JSplitPane jspPanelUno;
JSplitPane jspPanelDos;
//Componentes
JList jlTipoLetra;
JList jlConfiguracion;
JSlider jsTamanioLetra;
JTextArea jtaEjemplo;
JButton jbAceptar;
JButton jbCancelar;
String[] sListaTipo={"Italic","Plain","Roman"};
Font fuente;
Font fuenteDefecto;
int tamanio=12;
int tipoLetra=Font.TRUETYPE_FONT;
boolean ok=false;
public Fuente(JFrame padre,String titulo)
{
jdInterfaz=new JDialog(padre,titulo);
jdInterfaz.setSize(500,300);
jdInterfaz.setVisible(true);
jdInterfaz.setResizable(false);
jpPrincipal=new JPanel();
jpPrincipal=(JPanel) jdInterfaz.getContentPane();
inicializaPaneles();
}
public Fuente()
{
jdInterfaz=new JDialog();
jdInterfaz.setSize(500,300);
jdInterfaz.setVisible(true);
jdInterfaz.setResizable(false);
jpPrincipal=new JPanel();
jpPrincipal=(JPanel) jdInterfaz.getContentPane();
inicializaPaneles();
}
public void inicializaPaneles()
{
jpPrincipal.setLayout(new BorderLayout());
inicializaTiposLetra();
inicializaConfLetra();
inicilizaTamanioLetra();
inicializaEjemplo();
inicializaBotones();
jspPanelUno=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true);
jspPanelUno.add(jpTipoLetra);
jspPanelUno.add(jpConfiguracion);
jspPanelDos=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true);
jspPanelDos.add(jpTamanio);
jspPanelDos.add(jpEjemplo);
jpPrincipal.add(jspPanelUno,BorderLayout.WEST);
jpPrincipal.add(jspPanelDos,BorderLayout.CENTER);
jpPrincipal.add(jpBotones,BorderLayout.SOUTH);
}
public void inicializaTiposLetra()
{
jpTipoLetra=new JPanel();
jpTipoLetra.setLayout(new BoxLayout(jpTipoLetra,BoxLayout.Y_AXIS));
jpTipoLetra.setBackground(new Color(238,232,170));
jlTipoLetra=new JList(sListaTipo);
jlTipoLetra.setBackground(new Color(238,232,170));
jlTipoLetra.addListSelectionListener(new EscuchaTipoLetra ());
jpTipoLetra.add(jlTipoLetra);
}
public void inicializaConfLetra()
{
jpConfiguracion=new JPanel();
jpConfiguracion.setBackground(new Color(238,232,170));
}
public void inicilizaTamanioLetra()
{
tamanio=12;
jpTamanio=new JPanel();
jpTamanio.setBackground(new Color(238,232,170));
jsTamanioLetra=new JSlider(JSlider.VERTICAL,5, 100,tamanio);
jsTamanioLetra.setMajorTickSpacing(10);
jsTamanioLetra.setMinorTickSpacing(2);
jsTamanioLetra.setPaintTicks(true);
jsTamanioLetra.setPaintLabels(true);
jsTamanioLetra.setBackground(new Color(238,232,170));
jsTamanioLetra.addChangeListener(new EscuchaSlider());
jpTamanio.add(jsTamanioLetra);
}
public void inicializaEjemplo()
{
jtaEjemplo=new JTextArea("Texto De ejemplo");
jpEjemplo=new JScrollPane(jtaEjemplo);
jpEjemplo.setBackground(new Color(238,232,170));
}
public void inicializaBotones()
{
jpBotones=new JPanel();
jpBotones.setBackground(new Color(70,130,180));
jbAceptar=new JButton("Aceptar");
jbAceptar.addActionListener(new EscuhaBotonAceptar());
jbCancelar=new JButton("Cancelar");
jbCancelar.addActionListener(new EscuchaBotonCancelar());
jpBotones.add(jbAceptar);
jpBotones.add(jbCancelar);
}
public void configuraLetra(String nombre, int estilo, int tamanio)
{
fuente=new Font(nombre,estilo,tamanio);
}
public Font getFont()
{
return fuente;
}
public Font getFuenteRes()
{
return jtaEjemplo.getFont();
}
//Escuchadores
public class EscuchaSlider implements ChangeListener
{
public void stateChanged(ChangeEvent e)
{
JSlider jsRecupera=(JSlider) e.getSource();
tamanio=jsRecupera.getValue();
configuraLetra("",tipoLetra,tamanio);
// jtaEjemplo.setFont(getFont());
jtaDatos.setFont(getFont());
}
}
public boolean getEstado()
{
System.out.println("--->entro en estado..");
return ok;
}
public class EscuchaBotonCancelar implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
fuenteDefecto=new Font("",Font.TRUETYPE_FONT,12);
jtaDatos.setFont(fuenteDefecto);
jdInterfaz.setVisible(false);
}
}
public class EscuhaBotonAceptar implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
// System.out.println("-->Aceptar"); //esto es para hacer visible el aceptar en consolo
jtaDatos.setFont(getFont());
jdInterfaz.setVisible(false);
ok=true;
}
}
public class EscuchaTipoLetra implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent e)
{
JList temp=(JList)e.getSource();
switch(temp.getSelectedIndex())
{
case 0:
{
tipoLetra=Font.ITALIC;
configuraLetra("",tipoLetra,tamanio);
// jtaEjemplo.setFont(getFont());
break;
}
case 1:
{
tipoLetra=Font.PLAIN;
configuraLetra("",tipoLetra,tamanio);
// jtaEjemplo.setFont(getFont());
break;
}
case 2:
{
tipoLetra=Font.TYPE1_FONT;
configuraLetra("",tipoLetra,tamanio);
// jtaEjemplo.setFont(getFont());
break;
}
}
jtaDatos.setFont(getFont());
System.out.println(temp.getSelectedIndex());
}
}
public class EscuchaConfLetra implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent e)
{
JList temp=(JList)e.getSource();
System.out.println(temp.getSelectedIndex());
}
}
}
// MAIN
public static void main(String[] args)
{
Editor prueba_1=new Editor();
}
}
|
Hoy habia 2 visitantes (2 clics a subpáginas) ¡Aqui en esta página!
|
|
|
|