Juan Carlos Castro - Curso de Programación en Java

Anuncio
Juan Carlos Castro
http://consultasjava.tripod.com
[email protected]
Teoría
Utilización de Menús.
Para la utilización de menús en una interfaz gráfica con Swing se utilizan las clases
JMenuBar, JMenu y JMenuItem.
JMenuBar es la barra de menú que estará asociada al JFrame y que contendrá los JMenu.
Una manera de crear y establecer la barra de menú es la siguiente:
JMenuBar jmb = new JMenuBar();
setJMenubar(jmb);
El siguiente paso es añadir los menús a la barra de menús usando instancias de la clase
JMenu. El argumento que se pasa en el constructor es la etiqueta que aparecerá en el menú.
JMenu menuArchivo = new JMenu(“Mi Menu”);
jmb.add(menuArchivo). // se pega el menú a la barra.
A continuación se añaden los ítems a cada JMenu, agregándoles el escuchador de eventos.
JMenuItem menuItemSalir = new JMenuItem(“salir”);
menuItemSalir.addActionListener(this);
Fig1. Componentes de un editor de texto.
Finalmente se agregan los JMenuItem al menú.
menuArchivo.add(menuItemSalir);
Los
eventos
de
los
JMenuItem,
son
manejados
actionPerformed(ActionEvent) de la interfaz ActionListener.
por
el
método
Creación de submenús (menús anidados).
La creación de submenús consiste en pegar un JMenu hijo al JMenu padre. A continuación
se muestra un ejemplo.
Primero se crean los dos menús, el padre contendrá al menú hijo.
menuPadre = new JMenu("Menu Padre");
menuHijo = new JMenu("Menu Hijo");
Después se crean los ítems del menú hijo.
item1 = new JMenuItem("Menu Item 1");
item2 = new JMenuItem("Menu Item 2");
A continuación se le pegan los ítems al menú hijo.
menuHijo.add(item1);
menuHijo.add(item2);
Finalmente se pega al padre el menú hijo.
menuPadre.add(menuHijo);
Fig2. Utilización de submenús
Cajas de diálogo para abrir o guardar archivo.
Swing provee una clase para el manejo de diálogos de archivo. Dicha clase es
JFileChooser.
JFileChooser permite tanto la elaboración de diálogos para guardar como para salvar. Hay
que mencionar que esta clase nada más es una interfaz para elegir archivos o directorios,
pero que las funciones de guardar y salvar no están implementadas.
JFileChooser tiene un constructor que recibe como argumento el directorio de trabajo. El
directorio de trabajo es el directorio donde corre actualmente el programa. Para averiguar el
directorio de trabajo se utiliza el método de clase getProperty(String property) de la clase
System. Los diferentes String que representan alguna propiedad están definidos en la clase
java.lang.System.
Por lo tanto un String que contenga el directorio de trabajo puede ser el siguiente:
String userDir = System.getProperty("user.dir");
El siguiente paso es crear la instancia de JFileChooser
JFileChooser saveDialog = new JFileChooser(userDir);
A continuación se muestra el diálogo haciendo uso del método showSaveDialog, el cuál
muestra un diálogo para guardar archivo.
saveDialog.showSaveDialog(null);
Fig3. Cuadro de diálogo para guardar archivo.
Después de mostrar el diálogo se debe capturar el archivo elegido. El archivo elegido es
una instancia de la clase File. La clase File es del paquete java.io por lo cual es necesario
importar este paquete si no ha sido hecho.
File selectedFile = saveDialog.getSelectedFile();
Finalmente se imprime el nombre del archivo hacienda uso del método toString() que
devuelve una representación en forma de String del objeto File obtenido anteriormente.
System.out.println(selectedFile.toString());
Utilización de JColorChooser
JFileChooser es un diálogo que permite elegir un color. Para poder elegir un color hay que
realizar una serie de pasos.
Lo primero es crear una instancia de JColorChooser
JColorChooser jcc = new JColorChooser();
A continuación se muestra el selector de colores usando el método showDialog que recibe
como argumentos el componente padre, el String que será el título del JFileChooser y
finalmente un color inicial. Este método devuelve el color seleccionado.
Color c = jcc.showDialog(null,"Seleccione un color",Color.black);
Fig4. Cuadro de diálogo para elegir un color.
Modificación de las fuentes de un componente.
Los componentes tienen fuentes a las cuales se les puede modificar el tipo de letra, el estilo
y el tamaño.
Para cambiar la fuente de un componente se utiliza el método setFont(Font f) heredado por
todos los componentes de la clase Component. Este método recibe un objeto Font que tiene
el siguiente constructor:
Font(String nombreFuente, int estilo, int tamano).
Obtención de las Fuentes del sistema
La clase GraphicsEnvironment del awt obtiene las fuentes del sistema con la ayuda del
método getAllFonts() el cual devuelve un arreglo de tipo Font.
El primer paso es crear un objeto GraphicsEnvironment. GraphicsEnvironment no se puede
instanciar por ser una clase abstracta por lo cual se utiliza el método de clase
getLocalGraphicsEnvironment(). Este método devuelve un objeto GraphicsEnvironment
que contiene información sobre los dispositivos gráficos y las fuentes del sistema.
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
El siguiente paso es obtener las Fuentes con getAllFonts().
Fonts misFuentes[] = ge.getAllFonts();
Para tener acceso a alguna de las posiciones del arreglo se utiliza el nombre de la variable
del arreglo y un índice así:
Font primeraFuente = miArregloDeFuentes[0];
Estilo de la fuente
El estilo de la fuente es un entero producto de la suma de variables de clase Font.
int estiloNormal = Font.PLAIN;
int estiloNegrita = Font.BOLD;
int estiloCursiva = Font.ITALIC ;
int estiloNormalNegrita = Font.PLAIN+Font.BOLD ;
int estiloCursivaNegrita = Font.ITALIC+Font.BOLD ;
Teniendo un Component c, se le puede poner una letra Times, estilo cursiva negrita y
tamaño 18 así:
Font f = new Font(“Times”,estiloCursivaNegrita,18);
c.setFont(f);
Práctica
La práctica consiste en desarrollar una interfaz para un editor de texto. Tendrá como
componente a parte de la barra de menús, un JTextArea con barras de desplazamiento
donde el usuario podrá digitar el texto.
Una barra de menús con los siguientes menús:
• Archivo.
• Configuración.
El menú archivo tendrá los siguientes ítems:
• Abrir. Al hacer clic en este ítem se mostrará una caja de diálogo para abrir
archivo.
• Guardar: Al hacer clic en este ítem se mostrará una caja de diálogo para
guardar archivo.
• Salir: Al hacer clic en este ítem se cerrará la aplicación.
El menú de configuración tendrá los siguientes ítems:
• Cambiar color de fondo: Cambia el color de fondo del componente de texto.
Usar JColorChooser.
• Cambiar el color de frente: Cambia el color del texto que se muestra en
pantalla. Usar JColorChooser.
• Cambiar el tamaño de la letra. Tres tamaños:
o Pequeño:
10
o Normal:
12
o Grande:
14
o Muy Grande: 18
Otras clases que deben utilizar: java.awt.Font
Otros métodos que deben utilizar: setBackground(Color), setForeground(Color),
setFont(Font f).
Observaciones
•
•
La parte teórica asume conocimientos previos del estudiante en tanto a
manejo de eventos y orientación a objetos (herencia, uso de instancias y de
interfaces, invocación de métodos).
Se recomienda al estudiante investigar en el API de Java sobre otras clases,
constructores y métodos de las clases mencionadas en este documento.
Descargar