package ejercicio80;
/**
*
* @author juan
*/
public class Fecha {
private int dia;
private int mes;
private int anyo;
/**
* Constructor por defecto genera fechas al 1 del 1 del 2013
*/
public Fecha() {
this.dia = 1;
this.mes = 1;
this.anyo = 2013;
}
/**
* Constructor al que les pasamos tres parámetros si la fecha es posible se
* le asigna en caso de fecha incorrecta inicializa el objeto al 1-1-2013
*
* @param dia representa el día de la fecha completa
* @param mes mes de la fecha
* @param anyo año de la fecha
*/
public Fecha(int dia, int mes, int anyo) {
if (comprobarFecha(dia, mes, anyo)) {
this.dia = dia;
this.mes = mes;
this.anyo = anyo;
} else {
this.dia = 1;
this.mes = 1;
this.anyo = 2013;
}
}
/**
* Permite asignar día, mes y anyo al objeto fecha. Si la asignación es
* correcta devuelve true, en caso contrario false.
*
* @param dia día del año que se quiere asignar
* @param mes mes del año en formato numérico
* @param anyo año en formato numérico
* @return true si la fecha asignada es posible, false en caso contrario
*/
public boolean asignate(int dia, int mes, int anyo) {
boolean retorno = false;
if (comprobarFecha(dia, mes, anyo)) {
this.dia = dia;
this.mes = mes;
this.anyo = anyo;
Este blog está dedicado a la recolección de información relacionada con las nuevas tecnologías ( tecnoloxía xa), especialmente, con las vinculadas a la informática. La idea es centralizar y compartir la información y cada manual o tutorial que voy recolectando para las clases tanto de administración de sistemas como de explotación de sistemas informáticos de modo que estén disponibles para alumnos y resto de interesados. (IES A Carballeira, Ourense)
Mostrando entradas con la etiqueta explicación. Mostrar todas las entradas
Mostrando entradas con la etiqueta explicación. Mostrar todas las entradas
jueves, 22 de enero de 2015
Clase fecha (80) v2.0
Etiquetas:
DAM,
ejercicios,
explicación
lunes, 19 de enero de 2015
Clase fecha (ejercicio 80)
Primera parte del ejercicio en la que comprobamos las fechas y vamos añadiendo comentarios a los métodos
package ejercicio80;
/**
*
* @author juan
*/
package ejercicio80;
/**
*
* @author juan
*/
Etiquetas:
explicación
miércoles, 10 de diciembre de 2014
Empezando con arrays
package explicacionarray;
import java.util.Scanner;
/**
*
* @author juan
*/
public class ExplicacionArray {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int [] unArray;
int [] otroArray = new int[20];
int lon=10;
Scanner leer = new Scanner(System.in);
Etiquetas:
DAM,
explicación,
programación
jueves, 30 de octubre de 2014
Explicación Switch case
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
int num;
String mes="", diaSemana="";
do {
System.out.println("Por favor introduzca el día de la semana (1-7)");
num = leer.nextInt();
} while (num<1 || num >7);
switch (num) {
case 1:
diaSemana= "Lunes";
break;
case 2:
diaSemana= "Martes";
break;
case 3:
diaSemana= "Miércoles";
break;
case 4:
diaSemana= "Jueves";
Etiquetas:
explicación,
programación
viernes, 30 de mayo de 2014
Simular tiradas de un dado
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package simulartiradas;
Etiquetas:
DAM,
explicación,
programación
Contar vocales de un cuadro de texto "preparando examen"
package unidad4u352;
public class Vocales {
String cadena;
int vocales[];
public Vocales(String cadena) {
Etiquetas:
DAM,
explicación,
programación
miércoles, 28 de mayo de 2014
Palíndromas en Swing "preparando examen"
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package unidad4palindromas;
/**
*
* @author juan
*/
public class Ventana extends javax.swing.JFrame {
private boolean palindroma(String miCadena){
Etiquetas:
DAM,
explicación,
programación
Cálculo de las potencias de 2 hasta ese número "preparando examen"
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
* Fuente:
* http://garabatoslinux.net/validacion-de-jtextfield-textfield-numerico-binario-o-solo-letras.html
*/
package unidad4u2e19;
import javax.swing.JOptionPane;
/**
*
* @author juan
*/
public class Potencias extends javax.swing.JFrame {
/**
* Creates new form Potencias
Etiquetas:
DAM,
explicación,
programación
Interfaz cálculo DNI sencilla "tipo examen"
En un ejemplo real controlad las pulsaciones para permitir sólo dígitos:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package dni;
import javax.swing.JOptionPane;
/**
*
* @author juan
*/
public class AplicacionDNI extends javax.swing.JFrame {
public static final String NIF_STRING_ASOCIATION = "TRWAGMYFPDXBNJZSQVHLCKE";
/**
* Devuelve un NIF completo a partir de un DNI. Es decir, añade la letra del NIF
* @param dni dni al que se quiere añadir la letra del NIF
* @return NIF completo.
*/
public static String letraDNI(int dni) {
return String.valueOf(dni) + NIF_STRING_ASOCIATION.charAt(dni % 23);
}
/**
* Creates new form AplicacionDNI
*/
public AplicacionDNI() {
initComponents();
}
Etiquetas:
DAM,
explicación,
programación
viernes, 23 de mayo de 2014
Controles Swing: Botones de radio, casillas verificación, spinner, slider,...
Continuamos viendo el uso de controles Swing en java, para ello hacemos una aplicación muy sencilla que permite modificar el estilo, tamaño y tipo de letra de un área de texto.
La ventana de la aplicación será algo como:
y el código (prestad atención en que alguno de los eventos llaman ya a la función p.e. cambiarTamano pero otros controles tratan el evento directamente,...es lo explicado en clase, todas deberían llamar al método para no estar repitiendo código y tratando lo mismo en veinte sitios ya que dificulta además de la programación el mantenimiento de las aplicaciones):
La ventana de la aplicación será algo como:
y el código (prestad atención en que alguno de los eventos llaman ya a la función p.e. cambiarTamano pero otros controles tratan el evento directamente,...es lo explicado en clase, todas deberían llamar al método para no estar repitiendo código y tratando lo mismo en veinte sitios ya que dificulta además de la programación el mantenimiento de las aplicaciones):
Etiquetas:
DAM,
explicación,
programación
lunes, 12 de mayo de 2014
Botón con imagen cambiando color de fondo
package explicacionventana;
import java.awt.Color;
import java.awt.Image;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import java.util.Random;
/**
*
* @author juan
*/
public class Ventana extends javax.swing.JFrame {
/**
* Creates new form Ventana
*/
JButton boton1;
public Ventana() {
initComponents();
Etiquetas:
DAM,
explicación,
programación
lunes, 5 de mayo de 2014
Convertir a Pesetas
Método que permite convertir a pesetas el texto tecleado en un campo de texto (supuestamente en euros llamado txtEuros). Se podría llamar en el caso del evento ActionPerformed y/o KeyReleased:
private void convAPesetas() {
double pesetas,euros;
DecimalFormat formato = new DecimalFormat("######.##");
if (!txtEuros.getText().equals(""))
try {
euros = Double.parseDouble(txtEuros.getText());
pesetas=euros*166.386;
txtPesetas.setText(formato.format(pesetas));
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(this, "Los datos introducidos no se pueden convertir a moneda", "Error en la conversión", JOptionPane.ERROR_MESSAGE);
txtEuros.setText("");
txtEuros.requestFocus();
}
}
Etiquetas:
DAM,
explicación,
java
viernes, 2 de mayo de 2014
Pasando de Euros a Pesetas al cambiar pulsaciones sin DocumentListener
En lugar de usar DocumentListener como en la entrada anterior para gestionar los cambios de letras en un cuadro de texto, en esta ocasión se emplea KeyReleased para detectar los cambios acaecidos en el contenido de los cuadros de texto:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package explicaciones;
import javax.swing.JOptionPane;
/**
*
* @author juan
*/
public class ventanaboton2 extends javax.swing.JFrame {
Etiquetas:
DAM,
ejercicios,
explicación
Explicando DocumentListener
Si queremos controlar los cambios en el contenido de un cuadro de texto podemos emplear el evento DocumentListener -que no está contemplado en Netbeans por ejemplo- en el siguiente ejemplo se crea una clase con un par debotones y cuadros de texto.
Tras ir añadiendo botones durante la explicación, al final cualquier cambio en un cuadro de texto cambia el contenido en el cuadro de texto del otro lado. (para que no comience a realizar cambios sucesivos en los dos lados empleamos una propiedad que nos diga si se está convirtiendo ya un tipo de dato a otro (sino las operaciones podrían ser infinitas ya que los datos que mostramos no son divisiones exactas).
Tras ir añadiendo botones durante la explicación, al final cualquier cambio en un cuadro de texto cambia el contenido en el cuadro de texto del otro lado. (para que no comience a realizar cambios sucesivos en los dos lados empleamos una propiedad que nos diga si se está convirtiendo ya un tipo de dato a otro (sino las operaciones podrían ser infinitas ya que los datos que mostramos no son divisiones exactas).
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package explicaciones;
import java.awt.Event;
import java.awt.event.ActionEvent;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
/**
*
* @author juan
*/
public class VentBotonesLabel extends javax.swing.JFrame {
private boolean cambiando;
/**
Etiquetas:
DAM,
explicación,
programación
miércoles, 23 de abril de 2014
Unidad 2 Ejercicio 19: Potencias de 2 con excepciones y cuadros de diálogo
Volvemos al ejercicio 19 de la unidad 2, pero en este caso leemos los valores mediante un cuadro de diálogo de la clase JOptionPane y mostramos el resultado del mismo modo.
También aprovechamos para repasar el manejo de excepciones y hacemos que si el usuario introduce algún valor que no sea de tipo numérico se lo advierta (ojo no usamos excepciones específicas).
package interfaz;
import javax.swing.JOptionPane;
public class Interfaz {
/**
* @param args the command line arguments
*/
static String calculaPotencia(int num){
String cadena="";
Etiquetas:
DAM,
ejercicios,
explicación,
programación
lunes, 21 de abril de 2014
Interfaz Gráfica de usuario en Java GUI
Esta semana comenzaremos con las interfaces gráficas en Java, independientemente de la manera en que las programemos –usando algún IDE o “a mano”- una buena aproximación al tema es este enlace a un tema introductorio de la Universidad de Salamanca y cuyo código parece sacada del libro “Como Programar” Ed. Pearson Prentice Hall.
Se pueden ver por un lado algunos de los componentes –junto con sus clases- y el funcionamiento de los eventos en Java prestando especial atención a aquellos más sencillos/básicos: botones, casillas de selección y botones de opciones.
En este otro enlace de la Universidad Politécnica de Cataluña se presta especial atención a las relaciones entre componentes, eventos y listeners.
*un buen complemento a los apuntes y boletines de ejercicios de Juanjo
Etiquetas:
DAM,
explicación,
programación
viernes, 11 de abril de 2014
Programame Ourense 2014 Presupuestos con objetos y arrayList
H - Presupuestos
Un compañero de Frenando, un tal, Kimi Cuentas se ha propuesto reformar una casa para dedicarla a turismo rural, pero tiene unas fuertes restricciones presupuestarias y temporales por lo que se ha dedicado a solicitar presupuestos a distintas empresas haciendo especial hincapié en que las empresas desglosaran las tareas en una serie de grupos a los que ha asignado una inicial:O - OTROS
C - CARPINTERÍA
A - ALBAÑILERÍA
F - FONTANERÍA
R - CRISTALERÍA
E - ELECTRICIDAD
Frenando le ha implementado un programa que le permita escoger el mejor presupuesto.
En cada presupuesto puede haber categorías duplicadas o inexistentes, en caso de una categoría duplicada nos quedaremos con el mejor precio de esa categoría.
Etiquetas:
ejercicios,
explicación,
ourense,
programame
Programame Ourense H (para modificar)
Este código no controla duplicados en las categorías, modificarlo para que si lo haga:
package h.presupuestos;
import java.util.Scanner;
import java.util.ArrayList;
public class HPresupuestos {
public static void main(String[] args) {
Scanner leo = new Scanner(System.in);
String linea;
String palabras [];
Categoria leida;
Empresa empGana,empActual;
empGana= new Empresa();
linea=leo.nextLine();
while (!linea.equalsIgnoreCase("FIN")) {
empActual = new Empresa(linea);
linea=leo.nextLine();
palabras=linea.split(" ");
while (!(palabras[1].equals("0") && palabras[2].equals("0") && palabras[3].equals("0"))) {
leida= new Categoria(palabras[0].charAt(0),Double.parseDouble(palabras[1]),Double.parseDouble(palabras[2]),Double.parseDouble(palabras[3]));
empActual.pushCategoria(leida);
linea=leo.nextLine();
palabras=linea.split(" ");
}
if ((empGana.nombre.equals("primera") || empActual.getPresupuesto()<empGana.getPresupuesto()) ||(empActual.getPresupuesto()==empGana.getPresupuesto()&&empActual.getHoras()<empGana.getHoras()))
{
empGana=empActual;
}
linea=leo.nextLine();
}
System.out.println(empGana.nombre+" "+empGana.getHoras());
}
}
Etiquetas:
DAM,
explicación,
programación,
programame
miércoles, 9 de abril de 2014
Explicación Interface, override, implements....
Ejemplo de deportista implementando comparable para en un Array mostrar los elementos ordenados, también sobrescribimos el método equals que es empleado por el método contains de los ArraysList para decirnos si un objeto está o no incluido en el mismo.:
package interfaces;
public class Deportista implements Comparable {
int anhos;
String nombre;
public Deportista(int anhos, String nombre) {
this.anhos = anhos;
this.nombre = nombre;
}
@Override
Etiquetas:
DAM,
explicación,
programación
lunes, 7 de abril de 2014
Explicando herencia 2
Definiendo un objeto sofá que herede propiedades de un mueble.
package ejerciciomuebles;
/**
*
* @author juan
*/
public class EjercicioMuebles {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Mueble miMueble = new Mueble();
Etiquetas:
DAM,
explicación,
programación
Suscribirse a:
Entradas (Atom)