Beruflich Dokumente
Kultur Dokumente
Para conocer cada uno de los controles, revisaremos la descripción de los elementos
siguientes:
Áreas
En la interfaz principal para desarrollar interfaces de usuario encontramos las siguientes
áreas:
Área de diseño: Es el área que nos permite definir la interfaz de un usuario para un
formulario, se ubica cada uno de los componentes en la vista de diseño. en la
vista Source de la barra de herramientas, podremos ver la lógica de aplicación para las
aplicaciones que estamos creando.
Propiedades: Cada vez que seleccionemos uno de los componentes, serán desplegadas
sus características por medio de esta área.
Algunas consideraciones:
Los constructores de interfaces de Netbeans y en general de los IDEs, nos permiten la
creación de interfaces gráficas de manera eficiente y simplificada, permitiendo a los
desarrolladores utilizar componentes y adaptarse a reglas de diseño que son fácil de
seguir y entender. Podemos desarrollar formularios inlcuso arrastrando y soltando los
componetes, ubicándolos en posiciones deseadas si así es el caso.
Swing Containers
Son los contenedores que podemos utilizar para organizar los componentes agregados a
los formularios de la aplicación desarrollada. Las características principales de ellos se
resumen a continuación:
1. Panel:
aFlowPanel.add(aComponent);
aFlowPanel.add(anotherComponent);
2. Tabbed Pane
Nos permite agregar componentes subdivididos de forma que el usuario pueda seleccionar
dieferentes vistas en el mismo espacio del formulario. En tab1 podemos ubicar
componentes que cumplan cierta funcionalidad, mientras que en tab2 podemos tener otros
componetes, ocupando el mismo espacio del formulario.
3. Split Pane
Nos permite desplegar dos componentes por defecto, agregando funcionalidaes que
enlazen los dos componentes, por ejemplo, podemos usarla para desplagar una lista de
nombres al lado iaquierdo y al seleccionarlo desplegar su edad en el lado derecho. Su
estructura es la siguiente:
Otros componentes:
4. Scroll Pane
5. Tool Bar
6. Desktop Pane
7. Internal Frame
8. Layered Pane
Controles:
1. Label
Sirve para colocar mensajes o etiquetas que ayuden a referenciar otros controles o
transmitir cierta información. Podemos establecerle diversas propiedades y estilos para
adaptarlo a los requerimientos de las aplicaciones.
2. Button:
3. CheckBox:
Por medio de un CheckBox podemos dar opciones al usuario a que seleccione algunas
alternativas condicionales para nuestras aplicaciones.
Elementos de lista
Estos componentes nos permiten agrupar una lista de datos para que el usuario pueda
seleccionar entre varias opciones.
1. Combo Box
Es un componente tipo combo, con datos agrupados en ella para que sean desplegados
cuando los usuarios deben escoger un solo valor de una lista.
2. List
Permite agrupar las diferentes opciones en una lista generalmente visible dependiendo del
número de elementos contenidos en ella.
Entrada de datos
1. Text Field
2. Text Area
Permite a los usuarios la escritura de cadenas de texto largas, siendo útil para campos de
recomendaciones, descripción de productos.
Formatear los cuadros de texto permite a los programadores limitar a los usuarios a
ingresar sólo la información necesaria según el caso, por ejemplo, para validar números de
télefono, correo electrónico, etc.
4. Password Field:
5. Tree:
Permite establecer una jerarquía de directorios y documentos que sean utiles para las
finaliadaes de las aplicaciones:
Otros Controles
6. Progress Bar
7. Spinner
8. Editor Pane
9. Separator
10. Table
11. Slider
Menus
Establecen opciones en una estructura de menú, agrupando ciertos elementos según
criterio de funcionalidad, permitiendo un orden definido en la linea de ejecución de las
aplicaciones. Podemos agregar items de menú en la barra principal, lo que nos permitirá
agregar muchos más elementos que permitan desencadenas diferentes acciones.
1.
4. Vista Source
5. Agregaremos un JFrame al proyecto, será la interfaz con la que los usuarios interactúan en
nuestros programas.
11. Cambiamos el texto del botón por Mostrar mensaje , tendríamos una vista previa como la
siguiente:
12. AL hacer Clic en el botón, tendremos como resultado un mensaje como el siguiente:
Hemos visto en los anteriores pasos, de forma simplificada, como se crea un proyecto con
un formulario para hacer funcionar un Hola mundo con interfaces en Netbeans. Ver sódigo
fuente en Recursos de este módulo.
Crear un programa de Suma en
Netbeans
Pasos:
1 Label : Número 1
1 Label : Número 2
1 Label : Resultado
1 Button : Sumar
(Para cambiarlo: Clic derecho sobre el TextField y Change Variable Name ... ó cambiar
nombre de variable)
...
...
this.resultado.setText(String.valueOf(resultadoSuma)); asignamos al
TextField resultado el valor de resultadoSuma .
this.resultado.setText(String.valueOf(resultadoSuma));
// TODO add your handling code here:
}
Resultado:
Al ingresar dos números y presionar el botón sumar, el resultado debe parecer en el
campo correspondiente:
Modulo 8
Interfaces
Creación e implementación
Introducción al módulo
Hay una serie de situaciones en la ingeniería de software cuando es importante para
grupos dispares de programadores acordar un "contrato" que explique cómo interactúa su
software. Cada grupo debe poder escribir su código sin ningún conocimiento de cómo se
escribe el código del otro grupo. En términos generales, las interfaces son tales
contratos.
Por ejemplo, imagine una sociedad futurista donde los autos robóticos controlados por
computadora transportan pasajeros a través de las calles de la ciudad sin un operador
humano. Los fabricantes de automóviles escriben software que opera el automóvil:
detener, iniciar, acelerar, girar a la izquierda, y así sucesivamente. Otro grupo industrial,
los fabricantes de instrumentos electrónicos de orientación, fabrican sistemas informáticos
que reciben datos de posición de GPS (Sistema de Posicionamiento Global) y transmisión
inalámbrica de las condiciones del tráfico y usan esa información para conducir el
automóvil.
Los fabricantes de automóviles deben publicar una interfaz estándar de la industria que
detalla los métodos que se pueden invocar para mover el automóvil (cualquier automóvil,
de cualquier fabricante). Los fabricantes de orientación pueden escribir software que
invoque los métodos descritos en la interfaz para controlar el automóvil. Ninguno de los
grupos industriales necesita saber cómo se implementa el software del otro grupo. De
hecho, cada grupo considera que su software es altamente propietario y se reserva el
derecho de modificarlo en cualquier momento, siempre y cuando siga cumpliendo con la
interfaz publicada. Java
Definición de Interfaces
Conceptos:
Una interface es un grupo de métodos relacionados, los objetos definen su interación con
el mundo exterior por medio de sus métodos que exponen. Los métodos forman la interfaz
del objeto con el mundo exterior.
interface Bicicleta {
Una interfaz es un tipo de referencia, similar a una clase, que puede contener solo
constantes, firmas de métodos, métodos predeterminados, métodos estáticos y tipos
anidados. Los cuerpos de método existen solo para los métodos predeterminados y los
métodos estáticos. Las interfaces no se pueden instanciar: solo pueden implementarse
por clases o extenderse por otras interfaces.
Implementación de Interfaces
int cadence = 0;
int speed = 0;
int gear = 1;
void printStates() {
System.out.println("cadence:" +
cadence + " speed:" +
speed + " gear:" + gear);
}
}
La implementación de una interfaz permite que una clase se vuelva más formal sobre el
comportamiento que promete proporcionar. Las interfaces forman un contrato entre la
clase y el mundo exterior, y el compilador hace cumplir este contrato en tiempo de
compilación. Si su clase pretende implementar una interfaz, todos los métodos definidos
por esa interfaz deben aparecer en su código fuente antes de que la clase se compile
correctamente. Java
2. Clases finales
Las clases final no pueden ser superclases. Una dase final que se declara como final no
puede ser una superclase (es decir, una clase no puede extender a una clase final). Todos
los métodos en una clase final son implícitamente final. La clase String es un ejemplo de
una clase final. Si pudiéramos crear una subclase de String , los objetos de esa subclase
podrían usarse en cualquier lugar en donde se esperaran objetos String. Como esta clase
no puede extenderse, lo que los programas que utilizan objetos String pueden depender
de la funcionalidad de los objetos String , según lo especificado en la API de java. Al
hacer laclase final también se evita que los programadores creen subclases que podrían
ignorar las restricciones de seguridad.
3. Métodos finales:
Los métodos final no se pueden sobrescribir. Un método final en una superclase no puede
sobrescribirse en una subclase; esto garantiza que todas las subclases directas e
indirectas en la jerarquía utilicen la implementación del método final. Los métodos que se
declaran como private son implícitamente final, ya que es imposible sobrescribirlos en
una subclase. Los métodos que se declaran como static también son implícitamente
final. La declaración de un método fi nal nunca puede cambiar, por lo cual todas las
subclases utilizan la misma implemen- tación del método, y las llamadas a los métodos fi
nal se resuelven en tiempo de compilación; a esto se le conoce como vinculación estática.
Composición de clases
Una clase puede tener referencias a objetos de otras clases como miembros. A dicha
capacidad se le conoce como composición y algunas veces como relación tiene un. Por
ejemplo, un objeto de la clase Reloj Alarma necesita saber la hora actual la hora en la que
se supone sonará su alarma, por lo que es razonable incluir dos referencias a objetos
Tiempo como miembros del objeto ReíojAlarma.
las superclases tienden a ser “más generales”, y las subclases “más específicas”. Por
ejemplo, un PrestamoAuto es un Préstamo, así como PrestamoMejoraCasa y
PréstamoHipotecario. Por ende, en Java se puede decir que la clase PrestamoAuto hereda
de la clase Préstamo. En este contexto, dicha clase es una superclase y la clase
PrestamoAuto es una subclase. Un PrestamoAuto es un tipo específico de Préstamo, pero
es incorrecto afirmar que todo Préstamo es un PrestamoAuto; el Préstamo podría ser
cualquier tipo de crédito.
Superclase Subclases
Estudiante EstudianteCraduado, EstudianteNoCraduado,
Figura Circulo, Triangulo, Rectángulo, Esfera, Cubo
Superclase Subclases
Préstamo PrestamoAutomovil, PrestamoMejoraCasa, PrestamoHipotecario
Empleado Docente, Administrativo, CuentaBancaria, CuentaDeCheques, CuentaDeAhorr
Los miembros protected de una superclase pueden ser utilizados por los miembros de esa
superclase, por los de sus subclases y por los de otras clases en el mismo paquete; los
miembros protected también tienen acceso a nivel de paquete.
@Override
Consideraciones sobre la notación @Override
Cuando intentamos sobrescribir el método de una superclase, los errores comunes son:
asignar un nombre incorrecto al método de la subclase o utilizar el número o tipos
incorrectos de los parámetros en la lista de parámetros. Cada uno de estos problemas
crea una sobrecarga no intencional del método de la superclase.
Resumen de Interfaces
Una interfaz describe a un conjunto de métodos que pueden llamarse en un objeto, pero
no proporciona implementaciones concretas para todos ellos. Podemos declarar clases
que implementen a (es decir, que proporcionen implementaciones concretas para los
métodos de) una o más interfaces.
Cada método de una interfaz debe declararse en todas las clases que implementen a la
interfaz. Una vez que una clase implementa a una interfaz, todos los objetos de esa clase
tienen una relación es un con el tipo de la interfaz, y se garantiza que todos bs objetos de
la clase proporcionarán la funcionalidad descrita por la interfaz. Esto se aplica también
para todas las subclases de esa clase.
¿Cuál es su propósito?
Uso de interfaces
Para utilizar una interfaz, la clase concreta debe específicar que implementa a esa interfaz
y debe declarar cada uno de sus métodos con la firma específicada en la declaración de
interfaz.