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 {


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).

/*
* 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;
    /**
 

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="";

lunes, 21 de abril de 2014

Interfaz Gráfica de usuario en Java GUI


image
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 Sonrisa

viernes, 11 de abril de 2014

Unidad 3 Ejercicio de colas

Implementar una cola de personas (con nombre y apellidos) e ir insertándolos en la cola hasta que se introduzca la palabra fin.
Sacar e imprimir todas las personas de la cola en el orden de llegada /*

package unidad3ejercicionombresencola;
import java.util.Queue;
import java.util.LinkedList;
import java.util.Scanner;

public class Unidad3EjercicioNombresEnCola {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Queue<String> cola = new LinkedList<>();
        String linea;
        Scanner leo = new Scanner(System.in);
       
        do {
            System.out.println("Introduzca nombre: ");
            linea=leo.nextLine();
            cola.add(linea);
           
        } while (!linea.equalsIgnoreCase("FIN"));
       
        System.out.println("=======================================");
       
        while (!cola.isEmpty()) {
            System.out.println(cola.poll());
        }
       
    }
}

Ejercicios repaso (recomendados)



Unidad 2: 19, 27, 53, 65,78

Unidad 3: 1, 3,4,7, 13, 15, 18,22

Unidad 3 Ejercicio 38

Darle la vuelta a una cadena empleando una pila /*

package unidad3ejercicio38;

import java.util.Scanner;
import java.util.Stack;

public class Unidad3Ejercicio38 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
         Scanner leo = new Scanner(System.in);
        Stack<Character> pila = new Stack<>();
        String cadena;
       
        System.out.println("Introduzca una cadena");
        cadena=leo.nextLine();
      //  cadena=cadena.split(" ").toString();
        for (int i = 0; i < cadena.length(); i++) {
           
            pila.add(cadena.charAt(i));
        }
       
        System.out.println(pila);
        while (!pila.empty()) {
            System.out.print(pila.pop());
        }
       
   
    }
}