martes, 16 de abril de 2019

Mostrar Datos al Seleccionar una fila de un jtable JAVA SWING

Mostrar Datos al Seleccionar una fila de un jtable JAVA SWING


try{   
int seleccion = tblPacientes.getSelectedRow();
            txtDNI1.setText(String.valueOf(tblPacientes.getValueAt(seleccion, 0)));
            txtNombre1.setText(String.valueOf(tblPacientes.getValueAt(seleccion, 1)));
            txtDireccion1.setText(String.valueOf(tblPacientes.getValueAt(seleccion, 2)));
            txtTelefono1.setText(String.valueOf(tblPacientes.getValueAt(seleccion, 3)));
            txtCorreo1.setText(String.valueOf(tblPacientes.getValueAt(seleccion, 4)));
            date = new SimpleDateFormat("dd/MM/yyyy").parse((String) modelo.getValueAt(seleccion,5));
            txtFecha1.setDate(date);
}catch(Exception e){

}

sábado, 6 de abril de 2019

Implementar Calendario en JFrame con JCalendar



En el boton Obtener Fecha:

import java.util.Date;

private void btnObtenerFechaActionPerformed(java.awt.event.ActionEvent evt) {                                                
        Date fecha = jDateChooser1.getDate();
        
        //Formato de Fecha
        SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
        
        txtSalida.setText("La fecha es: " + formato.format(fecha));
    }       



lunes, 4 de marzo de 2019

Instalar SQL Server en CentOs 7

Descargar los repositorios de Microsoft:
$> sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo

Ejecutar los siguientes comandos para instalar SQL Server:
$> sudo yum install -y mssql-server

Configuración de MSSQL 
Establecer la contraseña de SA y seleccionar la edición. 
$> sudo /opt/mssql/bin/mssql-conf setup

Verificar que el servicio se esté ejecutando:
$> systemctl status mssql-server

Permitir el puerto de SQL Server en el firewall
$> sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
$> sudo firewall-cmd --reload

Finalmente Instalar en Windows las herramientas para conectarse a SQL Server en Linux:
- SQL Server Management Studio (SSMS)
- Windows PowerShell
- SQL Server Data Tools (SSDT)


domingo, 3 de marzo de 2019

Atajos de teclado en Visual Studio Code

Atajos de teclado en Visual Studio Code
============================================
Shift + Suprimir  ->  Eliminar la línea actual 
Shift + Alt + ↓         ->  Duplica la línea actual en la línea inferior
Alt+ Shift + /        ->  Comentar/descomentar  bloques de codigo
Alt+↑                  ->   Intercambiar línea actual con la superior
Ctrl+Alt+↓          ->   Multicursor 
Shift+Alt+F          ->   Formatear Código 
Ctrl + /                   ->   Comentar solo una linea
Ctrl + Shift + /     ->   Descomentar solo una linea
Ctrl + B               ->   Ocultar/Mostrar barra de Actividades
Ctrl + Shift + E   ->   Ocultar/Mostrar Explorador
Ctrl + Shift + X     ->   Ocultar/Mostrar Extensiones
Ctrl+ Shift + H   ->   buscar y reemplazar una cadena 
Ctrl + Enter     ->   Insertar nueva linea 
Alt + Shift + J     ->  Move last selection To Previous Find Match
Ctrl+ Alt + Shift + J  ->   Seleccionar todas las coincidencias 
Ctrl +  Shift + L ->   Seleccionar todas las palabras iguales
Shift + W  o Alt +J     ->   Seleccionar la siguiente búsqueda 
Ctrl + W -> Cerrar archivo
Ctrl + P -> Buscar archivos
Alt+ 1 2 3 -> Mover entre pestañas

miércoles, 20 de febrero de 2019

PROGRAMACION ORIENTADO OBJETOS EN JAVA

PROGRAMACION ORIENTADO OBJETOS EN JAVA 
===========================================


Ejercicio 1:
=========
Cree un proyecto nuevo de nombre P01E01. Cree un paquete nuevo de nombre modelo y diseñe una clase de nombre Producto con los siguientes atributos privados: código (cadena), descripción (cadena), precio (real) y con los métodos públicos get/set. Cree un nuevo paquete de nombre vista y diseñe la GUI en un Panel de nombre PanelPrincipal para el ingreso de los datos con el siguiente diseño:
Cada vez que hace clic en el botón Nuevo debe crear un objeto de la clase Producto y mostrar la información de sus atributos. Cada vez que hace clic en el botón Borrar debe borrar la información del área de texto, de las cajas de texto y enfocar el ingreso en la caja de texto del código.

Solucion:
---------------

Diseñamos una clase, de nombre Producto
Con los siguientes atributos privados: código (cadena), descripción (cadena), precio (real) y los métodos públicos get/set. Considere un constructor implícito.

public class Producto {
// atributos privados
private String codigo,
private String descripcion;
private double precio;

// métodos get
public String getCodigo(){return codigo;}
public String getDescripcion(){return descripcion;}
public double getPrecio(){ return precio;}
// métodos set

public void setCodigo(String c){ codigo =c;}
public void setDescripcion(String d){ descripcion=d;}
public void setPrecio(double p){ precio=p;}
}

Damos doble clic en el botón Nuevo para programar su acción:

private void btnNuevoActionPerformed(java.awt.event.ActionEvent evt) {
// crea un objeto nuevo de la clase Producto
  Producto nuevo = new Producto();

// lee los valores de la GUI y los coloca como atributos del objeto
  nuevo.setCodigo(leeCodigo());
  nuevo.setDescripcion(leeDescripcion());
  nuevo.setPrecio(leePrecio());

// muestra la información del nuevo objeto
  lista(nuevo);
}

// métodos que leen los datos de la GUI
private String leeCodigo(){return txtCodigo.getText();}
private String leeDescripcion(){return txtDescripcion.getText();}
private double leePrecio(){return Double.parseDouble(txtPrecio.getText());}

// método que muestra la información de un objeto de la clase Producto
private void lista(Producto p){
  imprime("Codigo\t:"+p.getCodigo());
  imprime("Descripcion\t:"+p.getDescripcion());
  imprime("Precio\t:"+p.getPrecio());
}

// método que muestra una cadena en el objeto de salida de la GUI
private void imprime(String s){
  txtSalida.append(s+"\n");
}

Regresamos al diseño y hacemos doble clic en el botón Borrar para programar su acción:
private void btnBorrarActionPerformed(java.awt.event.ActionEvent evt) {
  txtSalida.setText("");
  txtCodigo.setText("");
  txtDescripcion.setText("");
  txtPrecio.setText("");
  txtCodigo.requestFocus();
}

En el paquete vista
Coloque distribución BorderLayout, vaya a la ficha Source y escriba lo que está en negrita:
public class Principal extends javax.swing.JFrame {
public Principal() {
  initComponents();
  add(new PanelPrincipal());
  setSize(600,200);
}
Ejecute su aplicación.



Ejercicio 2:
=========
Realice un formulario que permita el ingreso de Nombres y Apellidos, Curso, Nota 1, Nota2, Nota 3 y que se Muestre en un Area de Texto la suma de notas, promedio, la condicion del promedio si es mayor o igual a 10.5 esta aprobado o desaprobado y el estado del promedio "0-5(Pesimo)",  "6-10(Malo)", "11-15(Regular)" , "16-18(Bueno) y "19-20(Excelente)""

Solucion:
------------
Diseñe la GUI en un JFrame de nombre JFEstudiante para el ingreso de los datos.



Diseñamos una clase, de nombre Estudiante 
Con los siguientes atributos privados: nombre (cadena), apellidos (cadena), curso (cadena), nota1, nota 2 y nota 3 (double) y los métodos públicos get/set.


public class Estudiante {

    private String nombre;
    private String apellidos;
    private String curso;
    private double nota1;
    private double nota2;
    private double nota3;

    public Estudiante(String nombre, String apellidos, String curso, double nota1, double nota2, double nota3) {
        this.nombre = nombre;
        this.apellidos = apellidos;
        this.curso = curso;
        this.nota1 = nota1;
        this.nota2 = nota2;
        this.nota3 = nota3;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellidos() {
        return apellidos;
    }

    public void setApellidos(String apellidos) {
        this.apellidos = apellidos;
    }

    public String getCurso() {
        return curso;
    }

    public void setCurso(String curso) {
        this.curso = curso;
    }

    public double getNota1() {
        return nota1;
    }

    public void setNota1(double nota1) {
        this.nota1 = nota1;
    }

    public double getNota2() {
        return nota2;
    }

    public void setNota2(double nota2) {
        this.nota2 = nota2;
    }

    public double getNota3() {
        return nota3;
    }

    public void setNota3(double nota3) {
        this.nota3 = nota3;
    }

    public double getSumaNotas() {
        return this.getNota1() + this.getNota2() + this.getNota3();
    }

    public double getPromedioNotas() {
        double promedio = (this.getNota1() + this.getNota2() + this.getNota3()) / 3;
        return promedio;
    }

    public String getCondicionPromedio(double prom) {
        String condicion = "";
        if (prom >= 10.5) {
            condicion = "aprobado";
        }
        else {
            condicion = "desaprobado";
        }
        return condicion;
    }

    public String getEstadoPromedio(double prom) {
        String estado = "";
        if (prom >= 0 && prom <= 5) {
            estado = "Pesimo";
        }
        else if (prom >= 6 && prom <= 10) {
            estado = "Malo";
        }
        else if (prom >= 11 && prom <= 15) {
            estado = "Regular";
        }
        else if (prom >= 16 && prom <= 18) {
            estado = "Bueno";
        }
        else if (prom >= 19 && prom <= 20) {
            estado = "Excelente";
        }
        return estado;
    }
}

Damos doble clic en el botón Procesar para programar su acción:

// crea un objeto e de la clase Estudiante
   Estudiante e = new Estudiante(leeNombres(),leeApellidos(),leeCurso(),leeNota1(),leeNota2(),leeNota3());
     
// muestra la información del objeto
   listaEstudiante(e);


//metodos que leen los datos de la GUI
    private String leeNombres(){
        return txtNombres.getText();
    } 
 
    private String leeApellidos(){
        return txtApellidos.getText();
    }
 
    private String leeCurso(){
        return cboCurso.getSelectedItem().toString();
    }
 
    private double leeNota1() {
        return Double.parseDouble(txtNota1.getText());
    }

    private double leeNota2() {
        return Double.parseDouble(txtNota2.getText());
    }
 
    private double leeNota3(){
        return Double.parseDouble(txtNota3.getText());
    }

// método que muestra la información de un objeto de la clase Estudiante
private void listaEstudiante(Estudiante e){
        imprimir("Nombres y Apellidos:\t" + e.getNombre() + e.getApellidos());
        imprimir("Curso:\t\t" + e.getCurso());
        imprimir("Nota1:\t\t"+e.getNota1());
        imprimir("Nota2:\t\t"+e.getNota2());
        imprimir("Nota3:\t\t"+e.getNota3());
        imprimir("Suma Notas:\t\t"+e.getSumaNotas());
        imprimir("Promedio Notas:\t"+e.getPromedioNotas());
        imprimir("Condicion del Promedio:\t" +e.getCondicionPromedio(e.getPromedioNotas()));
        imprimir("Estado Promedio:\t" + e.getEstadoPromedio(e.getPromedioNotas()));
    }

// método que muestra una cadena en el objeto de salida de la GUI
  private void imprimir(String cad){
        txtSalida.append(cad+"\n");
      }

Regresamos al diseño y hacemos doble clic en el botón Limpiar para programar su acción:
private void btnLimpiarActionPerformed(java.awt.event.ActionEvent evt) {
  limpiar();
}

void limpiar(){
         this.txtNombres.setText(null);
         this.txtApellidos.setText(null);
         this.cboCurso.setSelectedIndex(0);
         this.txtNota1.setText(null);
         this.txtNota2.setText(null);
         this.txtNota3.setText(null);
         this.txtSalida.setText(null);
         txtNombres.requestFocus();
}

Hacemos doble clic en el botón Cerrar para programar su acción:
private void btnCerrarActionPerformed(java.awt.event.ActionEvent evt) {                                       
       cerrar();
    } 

  void cerrar(){
        this.dispose();
    }

jueves, 7 de febrero de 2019

Elevado consumo de CPU por el proceso System en WINDOWS 10

Elevado consumo de CPU por el proceso System en Windows 10

El consumo de CPU por el proceso System que a su vez es el archivo ntoskrnl.exe (NT Kernel & System)

1. Revisar y actualizar todos los drivers de su PC o Laptop

2. La ruta en la cual modificaremos el archivo Start es:
Equipo\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TimeBrokerSvc

Modificar el Archivo Start -> Valor:4

martes, 29 de enero de 2019

Ejercicios Java

1. Permitir el registro de 10 alumnos a una clase con su respectivo nombre, edad y carrera a la que ingresa:
* Obtener el promedio de edad de los asistentes a la clase.
* Agrupar a los alumnos de acuerdo al tipo de carrera ciencias o letras

public class Ejercicio1 {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
String nombre = "", carrera = "", ciencias = "", letras="";
int edad = 0, cantidad;
double sumaTotal = 0, promedio;

System.out.print("Ingrese cantidad de alumnos: ");
cantidad = entrada.nextInt();
for (int i = 1; i <= cantidad; i++) {
System.out.print(i + ")" + "Ingrese nombre: ");
nombre = entrada.next();
System.out.print("Ingrese edad: ");
edad = entrada.nextInt();
System.out.print("Ingrese carrera: ");
carrera = entrada.next();
if (carrera.equals("sistemas") || carrera.equals("electronica")) {
ciencias = ciencias + nombre + " " + String.valueOf(edad) + " " + carrera + "\n";
}
else if(carrera.equals("literatura") || (carrera.equals("contabilidad")) ){
letras = letras + nombre + " " + String.valueOf(edad) + " " + carrera + "\n";
}

sumaTotal += edad;
}

promedio = sumaTotal / cantidad;

System.out.println("CIENCIAS:\n" +ciencias);
System.out.println("LETRAS:\n" + letras);
System.out.println("PROMEDIO: " + promedio);

}
}


Actualizar TailwindCSS a la version 4 en Laravel

Actualizar TailwindCSS a la version 4 en Laravel npx @tailwindcss/upgrade En el archivo vite.config.ts Agregar el plugin de tailwindcss impo...