Programación orientada a objetos
Enviado por j04g3 • 3 de Junio de 2014 • 1.717 Palabras (7 Páginas) • 194 Visitas
Conceptos- Unidad 5
- Programación orientada a objetos -
Interfaces
Una interfaz declara, pero no implementa, las acciones mínimas que poseerá un
Objeto creado a partir de una clase que la implemente. Es responsabilidad de las
Clases que implementan la interfaz definir cómo se llevan a cabo todas y cada una de las acciones declaradas por la interfaz.
Los paquetes java.awt y javax.swing
Java.awt
► Component
Superclase abstracta de varios componentes del AWT. Tiene un método public Graphics getGraphics() para obtener el contexto gráfico sobre el que dibujar figuras o componentes. Declara más de 200 métodos
► Container
Subclase de la anterior que puede contener otros componentes. Tiene un método que nos permite añadir un componente: Component add(Component comp)
► Color
Clase que representa un color
► Graphics
Encapsula el contexto gráfico que es utilizado por varios métodos para mostrar la salida en una ventana. Tiene además una serie de métodos para dibujar figuras
► Point
Clase para representar las coordenadas cartesianas x e y
► JPanel
Representa un área rectangular sobre la que la aplicación puede dibujar. La aplicación debe crear una clase que extienda a JPanel y sobreescribir el método void paintComponent(Graphics g) para obtener la funcionalidad que se desee. Es una subclase de Component
javax.swing
Proporciona una serie de clases e interfaces que amplían la funcionalidad del anterior. Están escritos en Java y son independientes de la plataforma. Se utiliza el término ligthweight para describir a estos elementos. La clase de este paquete que vamos a utilizar es:
JFrame
Clase que representa una ventana. El método Container.getContentPane() debe utilizarse para obtener un objeto del tipo Container que se utilizará para añadir componentes a la ventana
Componentes y contenedores
Componentes
Clase Descripción
Button Botones con un texto (Ej: Aceptar)
Canvas Rectángulo para dibujar
Choice Lista desplegable (ej: lista de países para elegir)
CheckBox Casillas cuadradas para marcar (como en un test)
Label Etiqueta: caracteres que se muestran en un contenedor
List Lista, similar a Choice pero constantemente desplegada
Scrollbar Barra de desplazamiento
TextField Campo de edición que puede utilizar el usuario para introducir datos
TextArea Similar a TextField pero permite introducir texto que ocupe varias líneas
Contenedores
Clase Descripción
Panel Contenedor básico que necesita formar parte de una ventana (o página)
Applet Panel preparado para formar parte de una página HTML
Window Una ventana sin título ni casillas para minimizar,cerrar,etc.
Frame Una ventana normal, con título
Dialog Ventana que se muestra sobre la ventana actual (Ej.: la típica ventana para preguntar "¿Está seguro de ...." y dos botones de Aceptar y Cancelar)
FileDialog Similar al anterior, pero especializado para la selección de ficheros (se suele utilizar en las opciones de "Abrir" o "Grabar como" )
Frame
La clase Frame representa en AWT una ventana tal y como estamos acostumbrados a verlas en un entorno gráfico. Dado que el resto de los componentes formarán parte de una ventana, parece lógico que comencemos por ella.
Tamaño
El tamaño se fija con el método void setSize(int, int) y la posición con setLocation(int,int). Ambos pertenecen a la clase Component. Ejemplo:
ventana.setSize(300, 100);
ventana.setLocation(100,50);
Estilos
Hablaremos de los "estilos" más adelante. De momento baste con decir que el método setLayout(Layout) determina el estilo de la ventana, es decir cómo se distribuyen los componentes en la ventana. Por ejemplo:
FlowLayout estilo = new FlowLayout();
ventana.setLayout(estilo);
hará que los componentes se sitúen uno al lado del otro, de izquierda a derecha y de arriba a abajo.
Añadir componentes
En este paso se añaden los componentes que se desee incluir en la ventana. Para eso se utiliza el método void add(Component) heredado de la clase Container. Por ejemplo:
Label etiq = new Label("Te estoy mirando...");
ventana.add(etiq);
Mostrar ventana
Esto se hace con el método setVisible heredado de Component.
ventana.setVisible(true);
Observaciones
En swing el componente correspondiente se llama JFrame, y permite indicar que se quiere salir de la aplicación al cerrar la ventana sin necesidad de escribir un objeto escucha, simplemente con:
JFrame ventana = new ...
....
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Label
La clase Label(etiqueta) se utiliza para mostrar Strings en un componente.
Constructoras
Tiene 3 constructoras:
• Label(): La constructora por defecto, crea una etiqueta con un String vacío.
• Label(String etiq): Etiq es el String a mostrar.
• Label(String etiq, int alineamiento): Permite indicar si la etiqueta se mostrará en el espacio reservado para ella en el component alineada a la izquierda (constante Label.LEFT), a la derecha (Label.RIGHT) o centrada (Label.CENTER).
Métodos
Aparte de los métodos heredados de Object y Component, esta clase tiene dos métodos importantes:
• setText(String etiq): Para modificar el contenido de la etiqueta.
• String getText(): Devuelve el contenido actual de la etiqueta.
Button
Este componente es básico; sobre el suelen recaer las acciones del usuario y a menudo en sus escuchas asociadas se realiza la parte más complicada del programa. La filosofía que se sigue es válida para otros componentes que no discutimos aquí, como los menús. Constructoras
Tiene 2 constructoras:
• Button(): Botón con un mensaje vacío.
• Button(String etiq): Etiq es el String a mostrar como mensaje.
Métodos
...