|
Buscador
Secciones
Otras zonas
Registro
Foros
Recomendamos
|
Inicio > Tutoriales > Nuevo en Java > New 2 Java: Construir una Aplicación: 3.- Recibir Entradas de Usuario
Donde aparecen los ..., definimos el código para la funcionalidad de este panel.
|
| En el caso del panel Diver Data, los campos de texto se muestra sólo si (if) se ha pulsado Return o (or) si (if) se ha pulsado sobre el botón Enter. Si ninguno de estos sucede, entonces la aplicación no hace nada. Por otro lado, si (if) se pulsa el botón Edit, hace que ciertos campos de texto sean visibles y listos para aceptar entrada de usuario. |
Usar Sentencias ifUna sentencia if es una sentencia condicional para controlar el flujo de ejecución que sólo es conocido en el momento de la ejecución. En una sentencia if, se evalúa una condición o expresión. Si la condición es true, entonces las sentencias del bloque se ejecutan. Si la sentencia es false, podemos proporcionar otras sentencias para que se ejecuten, o no sucede nada. La expresión a comprobar debe estar encerrada entre paréntesis ().
Esta esla forma general de la sentencia if:
if(condition) statement; else statement;
Podemos usar varias sentencias if, y podemos usarlas de foma anidada. Si aparece más de una sentencia después de if o else, debemos usar corchetes. La palabra clave else es opcional:
if(condition)
{
statement1;
statement2;
statement3;
}
else
{
statement;
}
Operadores Lógicos BooleanosOtra palabra importante que debemos observa en ese párrafo es la palabra or. En el panel Diver Data, necesitamos comprobar dos posibles condiciones que devuelven true:
En el lenguaje Java, los operadores lógicos operan sobre valores booleanos. Por ejemplo:
|| OR && AND != Not equal to
Hay más, pero por ahora sólo necesitamos los listados arriba. Recordamos el pseudo-codigo y añadimos algún código real:
if (data is entered) || (Enter button is clicked)
{
display the text to the screen
hide the text fields
}
if (Edit is clicked)
{
Make the text fields visible
}
Ahora que sabemos lo básico sobre nuestro control de flujo. Luego, necesitamos entener qué debería ir como condiciones. Obviamente el pseudo-código datos introducidos no va a funcionar. Lo que realmente estamos comprobando es si los campos de texto contienen texto introducido por el usuario. Apuntamos todos los campos de texto con un oyente de eventos. Cuando el usuario introduce el texto, se dispara un evento mediante la pulsación de Return. Debemos decirle a nuestra aplicación que get(obtenga) los datos y que set (seleccione) los datos a mostrar.
Todas las subclases de eventos, en este caso ActionEvent, heredan getSource de la clase EventObject. Este método devuelve el objeto que dispara el evento.
En otras palabras, si el texto se ha introducido en un objeto de campo de texto llamado company, entonces se devuelve company. Ahora que sabemos qué campo de texto ha disparado un evento, recuperamos el texto introducido. Para recuperar y mostrar los datos, usamos dos métodos de la clase JTextComponent:
Recuerda que, como los métodos son heredados, no necesitamos un ejemplar de la clase JTextComponent para acceder a estos métodos.
Luego asignamos el texto a un objeto JLabel para mostrarlo.
Como ejemplo:
// The evt variable is from the ActionListener
// object that was passed in the
// actionPerformed method.
if (evt.getSource() == company)
// Create a variable to hold the text
// you retrieve.
String companyText = name.getText();
// Assign the text to a label to
// display the text.
JLabel companyLabel = new JLabel("");
companyLabel.setText("Company: "
+ companyText);
// Hides the text field of the company
// text field object.
company.setVisible(false);
Este código funciona si el usuario pulsó la tecla Return, pero ¿qué pasa con el botón Enter? En el código de arriba, no se había tenido en cuenta este escenario, pero es facil añadirlo con el operador || en la primera línea:
if ((evt.getSource() == company) || (evt.getSource() == enter)) ...
El código está diciendo: "Si se pulsa Return en el campo de texto company o se devuelve el objeto enter, entonces haz lo siguiente." Observa los paréntesis () extras. Cada condición está encerrada en su propio juego de paréntesis, y luego el grupo está encerrado en otro juego de paréntesis. Ten cuidado de no dejar fuera uno de los paréntesis.
El panel Diver Data no tiene un botón Edit, que selecciona los campos de texto como visibles. Este trozo de código puede ir dentro de una sentencia if el sólo. Para hacer que los campos de texto sean visibles de nuevo, llamamos al método setVisible y lo seleccionamos a true.
| Sigue estos pasos... |
|---|
Tu método actionPerformed se debería parecer a este ejemplo |
Esto completa la funcionalidad para los campos de texto y los botones, pero no define la funcionalidad de los check boxes. Podemos gobernar los check boxes haciendo que la clase Diver implemente el interface ItemListener, y definiendo el método itemStateChanged en esta clase como hicimos para los campos de texto y los botones. Sin embargo, hay una forma mejor.
El beneficio de usar la programación orientada a objetos es que nos permite construir software y hacer cambios sin cambiar otras partes del código. Podemos cambiar un objeto sin causar problemas a los otros objetos porque los objetos interactúan a través de métodos.
El panel Diver Data define objetos GUI y mantiene la funcionalidad de esos objetos en métodos. Esta es una buena programación orientada a objetos, pero podemos mejorar este modelo confinando la funcionalidad en una clase interna.
| ¿Las Clases Internas tienen acceso directo a las variables de ejemplar y a los métodos que encierra la clase? |
|---|
| Leer comentarios (22) | |
| Escribir comentario | |
| Puntuación: |
|
| Votar | |
| Recomendar este tutorial | |
| Estadísticas |
Copyright © 1999-2007
Programación en castellano.
Todos los derechos reservados.
Formulario de Contacto -
Datos legales -
Publicidad
Hospedaje web y servidores dedicados linux por Ferca Network
red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados