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