martes, 31 de diciembre de 2019

Atajos de Teclado Intellij idea

Atajos de Teclado Intellij-idea
=========================
Formatear Codigo:                     Ctrl + Alt + L
Comentar/Descomentar :           Ctrl + /
Duplicar linea :                            Ctrl + D
Mover linea :                                Ctrl + Shift + ↓
Documentos Recientes:              Ctrl + E
Buscar Configuracion:               Ctrl + Shift + A
Settings:                                       Ctrl + Alt + S
Buscar siguiente coincidencia:  Alt + J
Remove occurrence:                  Shift + Alt + J
Buscar todas las coincidencia:  Ctrl + Alt  + Shift+ J
Reemplazar texto:                      Ctrl + Shift + R
Eliminar Fila:                             Ctrl + x
Eliminar imports no usados:     Ctrl + Alt + o


Navegar por el project:                  Alt + 1
Crear clase o paquete                     Alt + Insert
Renombrar Atr, Métodos,Clases: Shift + 6
Buscar Clases                                  Ctrl + N
Eliminar método:                           Ctrl + Alt + N
Eliminar clase:                                Alt + Delete

Crear Atajos
Crear Nuevo Proyecto:   --->     Ctrl + Shift + F1 
Abrir proyecto:                --->    Ctrl + Shift + F3

jueves, 19 de diciembre de 2019

POO en C#



Programacion Orientado a Objetos en C#
----------------------------------------------------------





Ejercicio 1:
===========
Crea una clase llamada Cuenta que tendrá los siguientes atributos: titular y cantidad 
Tendrá dos métodos especiales:
- Ingresar(double cantidad): se ingresa una cantidad a la cuenta, si la cantidad introducida es negativa, no se hará nada.

- Retirar(double cantidad): se retira una cantidad a la cuenta, si restando la cantidad actual a la que nos pasan es negativa, la cantidad de la cuenta pasa a ser 0.

Sol1:
using System;

namespace ConsoleApp1

{
    public class Cuenta
    {
        private string titular;
        private double cantidad;

        //metodos get y set

        public string Titular
        {
            get { return titular; }
            set { titular = value; }
        }

        public double Cantidad

        {
            get { return cantidad; }
            set {
                if (value > 0)
                {
                    cantidad = value;
                }
                else
                {
                    cantidad = 0;
                }           
            }
        }

        public void Ingresar(double cantidad)

        {
            this.cantidad = cantidad + this.cantidad;
        }

        public void Retirar(double cantidad)

        {
            this.cantidad = this.cantidad - cantidad;
        }
    }

}

*************************************************************
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Cuenta cuenta = new Cuenta();
            cuenta.Titular = "Juan Perez";
            cuenta.Cantidad = 5000;
            cuenta.Retirar(100);
            cuenta.Ingresar(200);

            Console.WriteLine("El dinero que tiene es: " + cuenta.Cantidad);
        }
    }

}







martes, 26 de noviembre de 2019

Configuraciones Avanzadas Eyebeam

***7469

detected_silence_level  --> 100


----------------------------------------------------------------------------------------------
Para bloquear el botón AA (AUTOANSWER) DEL X-LITE O EYEBEAM

En el X-Lite o eyebeam ingresar el siguiente código:

***746984

Filtrar por: ui:tog

Modificar los siguientes valores:

UI:TOG_AA:OFFSET_LEFT: 124

UI:TOG_AA:OFFSET_TOP: 196

Por:

UI:TOG_AA:OFFSET_LEFT: -1

UI:TOG_AA:OFFSET_TOP: -1

viernes, 27 de septiembre de 2019

Configuración Personal de Visual Studio Code

{
        "window.zoomLevel": 0,
        "editor.fontSize": 16,
        "editor.fontFamily": "Consolas, 'Courier New', monospace" ,
        "editor.letterSpacing": 0.5,
        "workbench.list.smoothScrolling": true,
        "editor.smoothScrolling": true,
        "workbench.startupEditor": "none",
        "workbench.settings.editor": "json",
        "window.titleBarStyle": "custom",
        "workbench.iconTheme": "vscode-icons",
        "workbench.colorTheme": "Material Theme Static",
        "editor.minimap.enabled": false,
        "editor.wordWrap":"on",
        "window.restoreWindows":"none",
        //"workbench.activityBar.visible": false,
        "git.ignoreMissingGitWarning": true,
        "terminal.integrated.profiles.windows": { "Git Bash": { "path": "C:\\Program Files\\Git\\bin\\bash.exe" } },
        "terminal.integrated.defaultProfile.windows": "Git Bash",
        "terminal.integrated.fontSize": 16,
        "extensions.ignoreRecommendations": true,
        "files.autoSave": "onFocusChange",
        "editor.formatOnSave": true,
        "editor.formatOnPaste": true,
        "editor.formatOnType": true,
        "explorer.autoReveal": false,
        "explorer.sortOrder": "type",
        "explorer.openEditors.visible": 0,
        "editor.occurrencesHighlight": false,
        //"editor.glyphMargin": false,
        "editor.suggestSelection": "first",
        "files.trimFinalNewlines": true, 
        "files.insertFinalNewline": false,
        "files.trimTrailingWhitespace": true,
        "prettier.semi": true, 
        //"editor.renderWhitespace": "all",
        "workbench.editor.enablePreview": false,
        "comment-divider.mainHeaderFiller": "=",
        "editor.parameterHints.enabled": false,
        "editor.insertSpaces": true,
        "editor.tabSize": 2,
        "editor.detectIndentation": false,
        "editor.defaultFormatter": "esbenp.prettier-vscode",
        "editor.folding": true,
        "prettier.tabWidth": 2,
        "prettier.useTabs": false,
        "prettier.htmlWhitespaceSensitivity": "ignore",
        "prettier.printWidth": 120,
       "prettier.bracketSpacing": true,
       //"editor.rulers": [120],
       "php.suggest.basic": false,
       "php.validate.executablePath": "C:\\Program Files\\php\\php.exe",
       "php.executablePath": "C:\\Program Files\\php\\php.exe",
       //"phpserver.browser": "msedge",
       //"phpserver.autoOpenOnReload": true,
       //"phpserver.phpPath": "C:\\Program Files\\php\\php.exe",
       "intelephense.format.braces": "k&r",

        "workbench.colorCustomizations": {
        "titleBar.activeBackground": "#2B2829",
        "editor.background":"#1E1E1E", 
        "activityBar.background":"#2D2D30",
        "activityBar.border": "#3F3F46",
        "sideBar.background":"#252526",
        "sideBar.border": "#434343",
        "sideBar.foreground": "#DFDFDF",
        "sideBarSectionHeader.background": "#37373D",
        "activityBar.foreground": "#a9ebff",
        "activityBar.inactiveForeground": "#818183",
        //"activityBar.activeBackground": "#356FA8",
        "activityBarBadge.background": "#00e6cb",
        "activityBarBadge.foreground": "#000000",
        "list.activeSelectionBackground": "#28537D",
        "list.inactiveSelectionBackground": "#28537D",
        "editorIndentGuide.activeBackground": "#8BD0FE",
        "editorSuggestWidget.selectedBackground": "#005F9D",
        "editorSuggestWidget.highlightForeground": "#00F4D6",
        "editorSuggestWidget.foreground": "#e7e5e5",
        "editorSuggestWidget.border": "#4A4A4A",
        "list.inactiveSelectionForeground": "#fff",
        "tab.activeBorder": "#52DCFF",
        "tab.inactiveBackground": "#383737",
        "tab.activeBackground": "#1F4061",
        "editorGroupHeader.tabsBackground": "#2D2D30",
        "editorCursor.foreground": "#FFCC00",
        /*"editor.wordHighlightBackground": "#504C64",*/
        "editor.wordHighlightBackground": "#1e1e1e00",
        "panel.border":"#007ACC",
        "statusBar.background": "#007ACC",
        "editor.lineHighlightBackground": "#1E1E1E",
        "editor.lineHighlightBorder": "#464646",
        "editorLineNumber.activeForeground": "#FFF",
        "editor.selectionBackground":"#264F78",
        "editorBracketMatch.background":"#464646",
        "editorBracketMatch.border":"#1E1E1E",
        "scrollbarSlider.hoverBackground": "#585858",
        "scrollbarSlider.background": "#585858",
        "scrollbarSlider.activeBackground": "#585858",
        "editor.findMatchHighlightBackground": "#660",
        "list.hoverBackground": "#4D4D53",
        "list.focusBackground": "#1B67A5",
        "pickerGroup.foreground": "#00F4D6",
        "editorWidget.resizeBorder": "#52DCFF",
        "widget.shadow": "#2e393f"

        },
        
        "[html]": {
                     "editor.defaultFormatter": "HookyQR.beautify",
           },

        "[php]": {
                      "editor.defaultFormatter": "bmewburn.vscode-intelephense-client",
                      "editor.formatOnSave": true
            },
}



/************************************************************/

//ATAJOS DE TECLADO
Atajos por Defecto:
CTRL + P          ->  Navegar archivos
Shift + Suprimir  ->  Eliminar la línea actual 
CTRL + L  ->  Seleccionar la línea actual
Ctrl + D   ->  Duplica la línea actual en la línea inferior
Ctrl + Shift + /   ->  Comentar/descomentar bloques de codigo.
Ctrl + /               ->  Comentar linea de codigo
Alt+↑             ->  Intercambiar línea actual con la superior
Ctrl+Alt+↓        ->  Multicursor 
Shift+Alt+F       ->  Formatear Código 
CTRL + B         --> Menu de Actividades
CTRL + SHIFT + E --> Explorer de archivos
CTRL + SHIFT + X --> Extensiones
CTRL + SHIFT + D --> Debug
CTRL + SHIFT + G --> Source Control GIT
CTRL + K + P --> Mostrar solo archivos abiertos
CTRL +  P --> Mostrar todos los archivos

//File ->  preferences -> Keyboard Shortcuts -> Open Keyboard Shortcuts
//Keybindings.json
//Comentarios CTRL  + SHIFT +  /
    {
        "key": "ctrl+numpad_divide",
        "command": "editor.action.blockComment",
        "when": "editorTextFocus && !editorReadonly"
    },
//Duplicar Codigo CTRL + D
    {
        "key": "ctrl+d",
        "command": "editor.action.copyLinesDownAction",
        "when": "editorTextFocus && !editorReadonly"
    },

/*****************************************************************/

Plugins:
- html tag wrapper: Permite agregar etiquetas html CTRL + I 
- Auto Rename Tag:  Permite renombrar etiquetas html. 
- IntelliSense for CSS class names in HTML: Autocompletado Css en HTML.
Highlight Matching Tag: Subraya las etiquetas html.
- Bracket Pair Colorizer: Permite agregar colores a las llaves y paréntesis.
Prettier - Code Formatter: Permite formatear Codigo.
Comment Divider: Genera comentarios en bloque. Shift + alt + X
Path Intellisense: Autocompleta nombres de archivos
Pretty XML: Formatea codigo xml, svg.
- Ident-rainbow: Identa el código de colores.
- Live Server
- Material Theme Static
Vscode-icons-mac
- vscode-icons
- Rainbow Tags
- Split HTML Attributes (Vue, React, Angular). Alt + Q

Plugins para PHP
- PHP Debug 
PHP IntelliSense
- PHP Intelephense
Format HTML in PHP
- PHP Server


martes, 24 de septiembre de 2019

Permitir CONEXIONES SMTP en SELINUX

Verificar si el servicio httpd puede realizar una conexión SMTP a través de la red para enviar un correo electrónico
getsebool httpd_can_sendmail
getsebool httpd_can_network_connect

Permitir conexión SMTP
$> sudo setsebool -P httpd_can_sendmail 1

lunes, 9 de septiembre de 2019

GIT

     GIT
=========
Flujo de Trabajo de GIT
1.  Working directory (Directorio de trabajo)
2.  Staging Area (Area de preparacion) Solo Archivos Modificados
3.  Git directory(Directorio GIT) commit


Configuracion Inicial:
- Nombre de usurio
- Correo

$> git config --global user.name "usuario"
$> git config --global user.email "usuario@gmail.com"

Ver configuracion realizada
$> git config --list

*************************************************
Inicializando el Repositorio
$> git init

Agregar todos los archivos al Área de preparación
$> git add .

Ver Estado del commit
$> git status

Crear el Primer punto de control de nuestro Proyecto(Creando el primer commit)
$> git commit -m "nuestro primer commit"

Ver todos los commits
$> git log

Ver cambios que se realizaron
$> git diff index.html

Navegar entre los commits
$> git checkout #comitlog


Subir Proyecto a GITHUB
========================
$> git branch -M main
$> git remote add origin https://github.com/USUARIO/HTML-CSS-JAVASCRIPT.git
$> git push -u origin main

Clonar el proyecto desde Github
$> git clone https://github.com/USUARIO/HTML-CSS-JAVASCRIPT.git

Nota: 
Eliminar Repositorio
$> rm -rf .git

Plugin para VSCode: GitHistory

martes, 3 de septiembre de 2019

Paleta de Colores

Paleta de Colores
=====================
#2A3B47  -->   Dark Light      

#1192EE  -->    Light Blue
#006DC6  -->   Light Blue Dark

#00CBFF  -->   SkyBlue
#66D1FF  -->   SkyBlue Secondary
#00BFF0  -->   SkyBlue Dark

#2bd480  -->    Light Green
#2EBD75  -->  Light Green Dark

#FFBA42  -->  Ligth Yellow
#FFA600  -->   Light Dark

#ff5252  -->      Light Red
#F95759  -->    Light Red Dark

#DFE0E0  -->   Bordes     (Grey)
#53575A  -->    Texto      (Grey)
#FCFCFC  -->  background (Grey)

lunes, 2 de septiembre de 2019

Banco de Galeria de Imagenes

Banco de Galeria de Imagenes
===============================
- Pexels    https://www.pexels.com/
- Pixabay   https://pixabay.com/
- Unsplash  https://unsplash.com/

lunes, 26 de agosto de 2019

HTML 5 y CSS

Elementos de Bloque importantes:
DIV
P
H1,H2,H3,H4,H5
SECTION
MAIN
NAV
TABLE
UL
FORM
FIGURE
AUDIO
VIDEO

Elementos de linea importantes:
IMG
A
INPUT
LABEL
SELECT
TEXTAREA

Media queries
===================
576px     => Dispositivos menores a 576 px pueden ser Celulares
576-768px => Dispositivos entre 576-768px pueden ser Tablets
768px     => Dispositivos mayores a 768px pueden ser Laptops
992px     => Pantallas mas grandes de pc o laptops

MIN-width: se utiliza para Dispositivos Computadoras
MAX-width: se utiliza para Dispositivos Celulares

Optimizar imágenes para web
===========================
Una imagen para la web debe ser como maximo 100kb.
https://tinypng.com/
https://shortpixel.com/

miércoles, 21 de agosto de 2019

Plugins de Visual Studio Code para PHP

Plugins de Visual Studio Code para PHP
===============================

  • Format HTML in PHP
  • phpfmt - PHP formatter
  • Laravel Blade formatter
  • Laravel Blade Snippets
  • Laravel Blade Spacer
  • Laravel Extra Intellisense
  • Laravel goto view
  • Laravel Snippets
  • Path Intellisense
  • PHP Debug
  • PHP Intellisense
  • PHP Namespace Resolver


phpfmt: Permite Formatear código de PHP
Format HTML in PHP: Permite Formatear código de HTML en PHP

settings.json
"phpfmt.php_bin": "C:/wamp64/bin/php/php7.3.5/php.exe",
"editor.formatOnSave": true,

lunes, 19 de agosto de 2019

HTML5 : TABLAS

<table border="1">
        <caption>Productos</caption>
        <thead>
            <tr>
                <th>Nombre</th>
                <th>Precio</th>
                <th>Existencias</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>Refresco</td>
                <td>10.00</td>
                <td>23</td>
            </tr>
            <tr>
                <td>Papas</td>
                <td>12.00</td>
                <td>25</td>
            </tr>
        </tbody>
        <tfoot>
            <tr>
                <td colspan="2">Total</td>
                <td>38</td>
            </tr>
        </tfoot>
    </table>


martes, 23 de julio de 2019

PSEINT EJERCICIOS

Realizar un pseudocodigo que solicite ingresar N números que pueden ser números positivos, negativos y ceros.
Calcular la cantidad y suma de todos los números positivos
Calcular la cantidad y suma de todos los números negativos
Calcular el porcentaje de ceros con relación al total de números ingresados.

Sol:

Proceso ejercicio2
Escribir "ingrese cantidad de numeros"
leer cant
Para i<-1 Hasta cant Con Paso 1 Hacer
escribir "Ingrese numero entero"
leer num

Si num>0 Entonces
positivo=positivo+1
sumap=sumap+num
sino si num<0 Entonces
negativo=negativo+1
suman=suman+num
sino
cero=cero+1
porc=(cero*100)/cant
Fin Si
Fin Si
Fin Para
Escribir "La cantidad positivos es: ", positivo
Escribir "La suma de positivos es: ", sumap
Escribir "La cantidad negativos es: ", negativo
Escribir "La suma de negativos es: ", suman
Escribir "La cantidad ceros es: ", cero
Escribir "El porcentaje de ceros es: ", porc

FinProceso

viernes, 21 de junio de 2019

JAVA CICLOS


   Ejercicios:

      Genere y muestre los N primeros números pares positivos, pero en forma descendente a excepción de los múltiplos de 5 y múltiplos de7.





Genere y muestre los N primeros múltiplos de 6 en forma ascendente, a excepción de los múltiplos de 5.




jueves, 30 de mayo de 2019

CAMBIAR EL TIPO DE DATO DE UNA COLUMNA EN MYSQL



mysql>  ALTER TABLE empleados CHANGE columnaActual nuevaColumna VARCHAR(40);

mysql> ALTER TABLE friends MODIFY f_cell_phone CHAR(12);

martes, 30 de abril de 2019

ARCHIVOS DE TEXTO EN JAVA


Diseño:




Crear Clase Persona



Crear Clase ArregloEstudiante


Crear Clase Archivos


En el JFrame:


En el Boton llamar a los metodos:


//Otra forma de Buscar

public void busqueda(){
        modelo.setRowCount(0);
            for (int i = 0; i < ae.tamaño(); i++) {
                Persona p = ae.obtener(i);
                if(p.getDni().equals(leerDni())){
                    Object datos[] = {
                    p.getDni(),
                    p.getNombre(),
                    p.getEdad()
                };
                //Enviando los datos al modelo
                modelo.addRow(datos);
                } 
            }
    }

domingo, 21 de abril de 2019

JAVA SWING
============

Poner colores  y demas al campo de texto

           txtDNI1.setBackground(new java.awt.Color(240,240,240));
           txtDNI1.setEditable(false);
           txtDNI1.setForeground(Color.red); 
           lblDNI.setForeground(Color.red);

jueves, 18 de abril de 2019

Modelo OSI

Modelo OSI
===========

Capa Aplicacion: Esta capa contiene a los programas de aplicacion que nosotros usamos a traves de la red,proporciona servicios de red  para las aplicaciones de usuario.

Capa Presentacion: Esta capa se encarga de traducir la informacion a un formato comprensiblle por los usuarios.

Capa Sesion: Esta capa brinda conexion entre las PCs(Incio, durante y fin de la comunicacion)

Capa Transporte: Esta capa es responsable del transporte confiable de los datos de una maquina a otra. la funcion de esta capa es garantizar que el receptor obtenga los datos exactamente como se enviaron

Capa Red: Esta capa me proporciona una direccion logica y ademas se encarga de encontrar la ruta mas apropiada para los datos.

Capa Enlace datos: Esta es responsable de la transmision de mensajes, el tramado y el control de errores.

Capa Fisica: Esta capa es responsable de la interfaz mecanica y electrica con los medios de comunicacion. Esto incluye los niveles de voltaje y la regulacion electrica.

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 Estudiant
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();
    }

Instalar Powershell 7

Instalar Powershell Version 7 -------------------------------------- $> winget search powershell $> winget install Microsoft.Powershe...