[Java] Contador de Lineas

  • 2 Respuestas
  • 2769 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado LKI

  • *
  • Underc0der
  • Mensajes: 70
  • Actividad:
    0%
  • Reputación 0
  • |Un día sin aprender nada, es un día perdido..|
    • Ver Perfil
    • Email

[Java] Contador de Lineas

  • en: Octubre 16, 2014, 05:44:44 pm
Hola gente les traigo un programita que estuve haciendo es muy simple pero espero que les pueda servir a aquellos programadores que les gusta saber la cantidad de lineas que tiene sus programas :P

  • Estructura del programa:
       
  • Creamos la Ventana (nombre: Aplicacion)
Código: Java
  1. package aplicacion;
  2.  
  3. import java.awt.BorderLayout;
  4.  
  5. public class Aplicacion extends Solo los usuarios pueden ver los links. Registrate o Ingresar {
  6.  
  7.    /*
  8.     * Creamos nuestra GUI donde veremos todos los elementos visuales
  9.     *
  10.     */
  11.    private Solo los usuarios pueden ver los links. Registrate o Ingresar barra;
  12.    private Solo los usuarios pueden ver los links. Registrate o Ingresar menu;
  13.    public Solo los usuarios pueden ver los links. Registrate o Ingresar menuItem;
  14.    private Solo los usuarios pueden ver los links. Registrate o Ingresar scrollPane;
  15.    private Solo los usuarios pueden ver los links. Registrate o Ingresar panelCentral;
  16.    public Solo los usuarios pueden ver los links. Registrate o Ingresar area;
  17.    private int lineas;
  18.    public Solo los usuarios pueden ver los links. Registrate o Ingresar labelContador;
  19.    private Solo los usuarios pueden ver los links. Registrate o Ingresar panelInferior;
  20.    private Solo los usuarios pueden ver los links. Registrate o Ingresar texto;
  21.    private Solo los usuarios pueden ver los links. Registrate o Ingresar menuFormato;
  22.    private Solo los usuarios pueden ver los links. Registrate o Ingresar menuFuente;
  23.    private Solo los usuarios pueden ver los links. Registrate o Ingresar menuTamanio;
  24.    private Solo los usuarios pueden ver los links. Registrate o Ingresar menuColor;
  25.    public Solo los usuarios pueden ver los links. Registrate o Ingresar paletaDeColores;
  26.    public Solo los usuarios pueden ver los links. Registrate o Ingresar tamanio2;
  27.    public Solo los usuarios pueden ver los links. Registrate o Ingresar tamanio1;
  28.    public Solo los usuarios pueden ver los links. Registrate o Ingresar fuente1;
  29.    public Solo los usuarios pueden ver los links. Registrate o Ingresar fuente2;
  30.    public Solo los usuarios pueden ver los links. Registrate o Ingresar fuente3;
  31.  
  32.  
  33.    public Aplicacion() {
  34.  
  35.       /*
  36.        * En el constructos inicializamos los paneles y la configuracion de la ventana
  37.        */
  38.       iniciarPanelInferior();
  39.       iniciarPanelCentral();
  40.       iniciarMenu();
  41.       iniciarGUI();
  42.    }
  43.  
  44.    private void iniciarPanelInferior() {
  45.  
  46.       /*
  47.        * Creamos nuestro PanelInferior y lo añadimos a la parte SUR de la Ventana
  48.        */
  49.       panelInferior = new Solo los usuarios pueden ver los links. Registrate o Ingresar();
  50.       labelContador = new Solo los usuarios pueden ver los links. Registrate o Ingresar(" ");
  51.       labelContador.setFont(new Solo los usuarios pueden ver los links. Registrate o Ingresar("Arial Unicode MS", Solo los usuarios pueden ver los links. Registrate o Ingresar.BOLD, 18));
  52.       panelInferior.add(labelContador);
  53.       getContentPane().add(panelInferior, Solo los usuarios pueden ver los links. Registrate o Ingresar.SOUTH);
  54.  
  55.    }
  56.  
  57.    private void iniciarMenu() {
  58.  
  59.       /*
  60.        * Iniciamos nuestro menu que luego llevara a cabo los eventos del usuario
  61.        */
  62.       barra = new Solo los usuarios pueden ver los links. Registrate o Ingresar();
  63.       menu = new Solo los usuarios pueden ver los links. Registrate o Ingresar("Opciones");
  64.       menuFormato = new Solo los usuarios pueden ver los links. Registrate o Ingresar("Formato");
  65.  
  66.       menuItem = new Solo los usuarios pueden ver los links. Registrate o Ingresar("Abrir Archivo");
  67.  
  68.       menu.add(menuItem);
  69.       menu.add(menuFormato);
  70.  
  71.       menuColor = new Solo los usuarios pueden ver los links. Registrate o Ingresar("Color");
  72.       menuFormato.add(menuColor);
  73.  
  74.       paletaDeColores = new Solo los usuarios pueden ver los links. Registrate o Ingresar("Abrir Paleta de colores");
  75.       menuColor.add(paletaDeColores);
  76.  
  77.       menuTamanio = new Solo los usuarios pueden ver los links. Registrate o Ingresar("Tama\u00F1o");
  78.       menuFormato.add(menuTamanio);
  79.  
  80.       tamanio1 = new Solo los usuarios pueden ver los links. Registrate o Ingresar("18");
  81.       menuTamanio.add(tamanio1);
  82.  
  83.       tamanio2 = new Solo los usuarios pueden ver los links. Registrate o Ingresar("20");
  84.       menuTamanio.add(tamanio2);
  85.  
  86.       menuFuente = new Solo los usuarios pueden ver los links. Registrate o Ingresar("Fuente");
  87.       menuFormato.add(menuFuente);
  88.  
  89.       fuente3 = new Solo los usuarios pueden ver los links. Registrate o Ingresar("MonoSpaced");
  90.       menuFuente.add(fuente3);
  91.  
  92.       fuente2 = new Solo los usuarios pueden ver los links. Registrate o Ingresar("Times New Roman");
  93.       menuFuente.add(fuente2);
  94.  
  95.       fuente1 = new Solo los usuarios pueden ver los links. Registrate o Ingresar("Arial");
  96.  
  97.       menuFuente.add(fuente1);
  98.       barra.add(menu);
  99.       setJMenuBar(barra); //Agregamos la barra con los menues a la ventana
  100.  
  101.    }
  102.  
  103.    private void iniciarPanelCentral() {
  104. /*
  105.  * Iniciamos el panelCentral de la aplicacion donde tendremos el texto a contar
  106.  */
  107.       area = new Solo los usuarios pueden ver los links. Registrate o Ingresar();
  108.       area.setFont(new Solo los usuarios pueden ver los links. Registrate o Ingresar("Monospaced", Solo los usuarios pueden ver los links. Registrate o Ingresar.PLAIN, 15));
  109.       scrollPane = new Solo los usuarios pueden ver los links. Registrate o Ingresar(area);
  110.       scrollPane.setViewportView(area);
  111.  
  112.       scrollPane
  113.             .setVerticalScrollBarPolicy(Solo los usuarios pueden ver los links. Registrate o Ingresar.VERTICAL_SCROLLBAR_ALWAYS);
  114.       getContentPane().add(scrollPane, Solo los usuarios pueden ver los links. Registrate o Ingresar.CENTER);
  115.  
  116.    }
  117.  
  118.    private void iniciarGUI() {
  119. /*
  120.  * Configuramos las caracteristicas de la ventana (tamaño,titulo,visibilidad,eje de vista)
  121.  */
  122.       setSize(595, 426);
  123.       setTitle("Contador de Lineas");
  124.       setLocationRelativeTo(null);
  125.       setVisible(true);
  126.  
  127.    }
  128.  
  129. }
  130.  

  • Creamos el Controlador (nombre: Controlador)
Código: Java
  1.  
  2. package controlador;
  3.  
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6.  
  7. import modelo.Modelo;
  8. import aplicacion.Aplicacion;
  9.  
  10. public class Controlador implements Solo los usuarios pueden ver los links. Registrate o Ingresar {
  11. /*
  12.  * Creamos Nuestro controlador que comunicara todos los eventos con el modelo
  13.  */
  14.    private int tam = 16;
  15.    private Modelo modelo;
  16.    private Aplicacion aplicacion;
  17.  
  18.    public Controlador(Aplicacion _ap, Modelo _modelo) {
  19.  
  20.    //Recibimos y seteamos el modelo y la aplicacion  
  21.       this.modelo = _modelo;
  22.       this.aplicacion = _ap;
  23.       agregarEventos();
  24.    }
  25.  
  26.    private void agregarEventos() {
  27.  
  28.       /*
  29.        * Agregamos los eventos de la ventana y le inidicamos que este objeto sera su manejador
  30.        */
  31.       this.aplicacion.menuItem.addActionListener(this);
  32.       this.aplicacion.menuItem.setActionCommand("abrirArchivo");
  33.       this.aplicacion.paletaDeColores.addActionListener(this);
  34.       this.aplicacion.paletaDeColores.setActionCommand("paletaDeColores");
  35.       this.aplicacion.tamanio1.addActionListener(this);
  36.       this.aplicacion.tamanio1.setActionCommand("tam1");
  37.       this.aplicacion.tamanio2.addActionListener(this);
  38.       this.aplicacion.tamanio2.setActionCommand("tam2");
  39.       this.aplicacion.fuente1.addActionListener(this);
  40.       this.aplicacion.fuente1.setActionCommand("fuente1");
  41.       this.aplicacion.fuente2.addActionListener(this);
  42.       this.aplicacion.fuente2.setActionCommand("fuente2");
  43.       this.aplicacion.fuente3.addActionListener(this);
  44.       this.aplicacion.fuente3.setActionCommand("fuente3");
  45.  
  46.    }
  47.  
  48.    @Override
  49.    public void actionPerformed(Solo los usuarios pueden ver los links. Registrate o Ingresar evento) {
  50.  
  51.       /*
  52.        * Segun el evento ejecutamos la accion pertinente
  53.        */
  54.       switch (evento.getActionCommand()) {
  55.  
  56.       case "abrirArchivo":
  57.          this.modelo.abrirArchivo();
  58.          this.aplicacion.area.setText(this.modelo.texto);
  59.          this.aplicacion.labelContador.setText("Total de lineas ="+ this.modelo.getLineas());
  60.          break;
  61.  
  62.       case "paletaDeColores":
  63.  
  64.          this.aplicacion.area.setForeground(this.modelo.cambiarColor());
  65.          break;
  66.  
  67.       case "tam1":
  68.  
  69.          this.aplicacion.area.setFont(this.modelo.nuevaFuente(
  70.                this.aplicacion.area.getFont().toString(), 18));
  71.  
  72.          tam = 18;
  73.          break;
  74.  
  75.       case "tam2":
  76.  
  77.          this.aplicacion.area.setFont(this.modelo.nuevaFuente(
  78.                this.aplicacion.area.getFont().toString(), 20));
  79.  
  80.          tam = 20;
  81.          break;
  82.  
  83.       case "fuente1":
  84.          this.aplicacion.area.setFont(this.modelo.nuevaFuente("Arial",tam));
  85.          
  86.          break;
  87.  
  88.       case "fuente2":
  89.          this.aplicacion.area.setFont(this.modelo.nuevaFuente("Times New Roman", tam));
  90.      
  91.          break;
  92.       case "fuente3":
  93.          
  94.          this.aplicacion.area.setFont(this.modelo.nuevaFuente("Monospaced", tam));
  95.          break;
  96.       }
  97.  
  98.    }
  99.  
  100. }
  101.  
  102.  

  • Creamos el modelo (nombre: Modelo)
Código: Java
  1.  
  2. package modelo;
  3.  
  4. import java.awt.Color;
  5. import java.awt.Font;
  6. import java.io.*;
  7.  
  8. import javax.swing.JColorChooser;
  9. import javax.swing.JFileChooser;
  10. import javax.swing.JOptionPane;
  11.  
  12. public class Modelo {
  13.  
  14.    public Solo los usuarios pueden ver los links. Registrate o Ingresar texto;
  15.    private int lineas;
  16.    private Solo los usuarios pueden ver los links. Registrate o Ingresar color;
  17.    private Solo los usuarios pueden ver los links. Registrate o Ingresar nuevaFuente;
  18.    private Solo los usuarios pueden ver los links. Registrate o Ingresar fuente;
  19.  
  20.    public Modelo() {
  21.  
  22.    }
  23.  
  24.    public Solo los usuarios pueden ver los links. Registrate o Ingresar cambiarColor(){ //Metodo que retorna un color seleccionado a partir de un componente modal ColorChooser
  25.       Solo los usuarios pueden ver los links. Registrate o Ingresar ventanaDeColores = new Solo los usuarios pueden ver los links. Registrate o Ingresar();
  26.       color = ventanaDeColores.showDialog(null,"Seleccione un Color", Solo los usuarios pueden ver los links. Registrate o Ingresar.gray);
  27.        return color;
  28.      
  29.    }
  30.    
  31.    public Solo los usuarios pueden ver los links. Registrate o Ingresar abrirArchivo() {
  32.                setLineas(0);
  33.       Solo los usuarios pueden ver los links. Registrate o Ingresar aux = "";
  34.       texto = "";
  35.       try {
  36.          /** llamamos el metodo que permite cargar la ventana */
  37.          Solo los usuarios pueden ver los links. Registrate o Ingresar file = new Solo los usuarios pueden ver los links. Registrate o Ingresar(); //creamos nuestro buscador de archivos
  38.                                        
  39.          file.showOpenDialog(null);
  40.          /** abrimos el archivo seleccionado */
  41.          Solo los usuarios pueden ver los links. Registrate o Ingresar abre = file.getSelectedFile(); // creamos un archivo que contendra el archivo seleccionado en el buscador
  42.  
  43.          /**
  44.           * recorremos el archivo, lo leemos para plasmarlo en el area de
  45.           * texto y para  obtener el numero de lineas de codigo
  46.           */
  47.          if (abre != null) {
  48.             Solo los usuarios pueden ver los links. Registrate o Ingresar archivos = new Solo los usuarios pueden ver los links. Registrate o Ingresar(abre);
  49.             Solo los usuarios pueden ver los links. Registrate o Ingresar lee = new Solo los usuarios pueden ver los links. Registrate o Ingresar(archivos);
  50.             while ((aux = lee.readLine()) != null) {
  51.                texto += aux + "\n";
  52.                lineas++;
  53.                setLineas(lineas);
  54.             }
  55.             lee.close();
  56.          }
  57.       } catch (Solo los usuarios pueden ver los links. Registrate o Ingresar ex) {
  58.          Solo los usuarios pueden ver los links. Registrate o Ingresar.showMessageDialog(null, ex + ""
  59.                + "\nNo se ha encontrado el archivo", "ADVERTENCIA!!!",
  60.                Solo los usuarios pueden ver los links. Registrate o Ingresar.WARNING_MESSAGE);
  61.       }
  62.       return texto;// El texto se almacena en el JTextArea
  63.    }
  64.    
  65.    
  66.    
  67.    
  68.    
  69.    /*
  70.     * Setter y getters
  71.     */
  72.    
  73.    public int getLineas() {
  74.       return lineas;
  75.    }
  76.  
  77.    public void setLineas(int lineas) {
  78.       this.lineas = lineas;
  79.    }
  80.  
  81.    /*
  82.     * Metodo para cambiar la fuente de la aplicacion
  83.     *
  84.     */
  85.    public Solo los usuarios pueden ver los links. Registrate o Ingresar nuevaFuente(Solo los usuarios pueden ver los links. Registrate o Ingresar font, int tamanio) {
  86.  
  87.       nuevaFuente = new Solo los usuarios pueden ver los links. Registrate o Ingresar(font, Solo los usuarios pueden ver los links. Registrate o Ingresar.PLAIN, tamanio);
  88.       return nuevaFuente;
  89.    }
  90. }
  91.  
  92.  

  • Y finalmente creamos nuestro ejecutable (nombre: Main)
Código: Java
  1. package ejecutable;
  2.  
  3. import controlador.Controlador;
  4. import modelo.Modelo;
  5. import aplicacion.Aplicacion;
  6.  
  7. public class Main {
  8.  
  9.    public static void main(Solo los usuarios pueden ver los links. Registrate o Ingresar[] args) {
  10.  
  11.       Aplicacion aplicacion = new Aplicacion();
  12.       Modelo modelo = new Modelo();
  13.  
  14.       /*
  15.        * Creamos y le pasamos como parametros al controlador la ventana y el modelo
  16.        */
  17.       new Controlador(aplicacion, modelo);
  18.  
  19.    }
  20.  
  21. }
  22.  
  23.  

 Funcionando..
                                   
« Última modificación: Octubre 16, 2014, 08:14:25 pm por Expermicid »
Ser mejor cada día es mi meta

 =LKI=

Desconectado Expermicid

  • *
  • Underc0der
  • Mensajes: 457
  • Actividad:
    0%
  • Reputación 0
  • _-Expermicid-_
  • Skype: expermicid.xd
    • Ver Perfil

Re:[Java] Contador de Lineas

  • en: Octubre 16, 2014, 09:00:53 pm
Buenisimo LKI.
Es una muy buena practicar el patrón mvc.

Saludos

Desconectado OLM

  • *
  • Underc0der
  • Mensajes: 57
  • Actividad:
    0%
  • Reputación 0
  • No hay justicia si la guerra está justificada.
  • Skype: jjavierolmedo
  • Twitter: @JJavierOlmedo
    • Ver Perfil
    • Hackpuntes
    • Email

Re:[Java] Contador de Lineas

  • en: Octubre 17, 2014, 03:48:22 pm
Para los que estamos estudiando Java bastante interesante, codigo facilito, entendible y bien comentado.

Gracias.
Un Saludo.
Nunca consideres el estudio como una obligación, sino como una oportunidad para adentrarse en el maravilloso mundo del saber.

 

[Video Curso] Iniciacion a Java por DesarrolloWeb y EscuelaIT Mayo 2014

Iniciado por graphixx

Respuestas: 3
Vistas: 3716
Último mensaje Febrero 23, 2015, 10:13:28 am
por Hu3c0
Como compilar programas Java en la consola de comandos de Windows

Iniciado por tar3kw0rm3d

Respuestas: 2
Vistas: 4053
Último mensaje Junio 04, 2013, 02:55:07 pm
por tar3kw0rm3d
Java Extremo [Video Cursos Completos] [Español] [ISO] 2009

Iniciado por graphixx

Respuestas: 9
Vistas: 9426
Último mensaje Diciembre 04, 2017, 02:36:34 am
por graphixx
[LIBRO] Programación avanzada en Java - Sonia Jaramillo Valbuena

Iniciado por graphixx

Respuestas: 5
Vistas: 8567
Último mensaje Enero 23, 2019, 07:14:41 pm
por jashin
Tutorial: Traduccion de aplicaciones JAVA - Moviles [By :: SmartGenius :: ]

Iniciado por ProcessKill

Respuestas: 0
Vistas: 2454
Último mensaje Febrero 24, 2010, 04:26:07 pm
por ProcessKill