06/11/2007, 22:48
|
| Colaborador | | Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 3 meses Puntos: 454 | |
Re: Duda sobre Eventos Hola:
Hay muchas formas de hacerlo y lo de bien o mal depende un poco de hasta qué punto tengas previsto reutilizar tu clase. Ahora mismo tienes un JFrame con un botón capaz de escribir en un JTextField. Si no tienes previsto reutlizar esta clase en otros programas para cosas distintas, lo que tienes está bien.
Sin embargo, siguiendo el mismo estilo, puedes mejorarla pasando cosas más genéricas. Por ejemplo, si en vez de recibir un JTextField recibes un JTextComponent -clase padre de JTextField-, te vale igual y tu clase admitiría más tipos de componentes, como JTextArea o JEditorPane.
Generalizando más, el JTextComponent lleva dentro un Document -se obtiene con getDocument()- que es el modelo de datos de todos los JTextComponent. Si pasas ese Document al JFrame, es aun más general, ya que ya no dependes de un componente SWING, sino de un modelo de datos que se puede usar en cualquier lado. De hecho, Document es una interface, por lo que es casi lo más general. Alguien podría hacer una clase que implemente Document de forma que escriba el texto en pantalla, en la impresora o lo mande por socket. Haciendo que tu JFrame reciba un Document, tendrías un JFrame con botón capaz de escribir texto en cualquier sitio, incluida pantalla, impresora o socket.
Si vas más allá, puedes incluso hacer tu propia interface más sencilla, con un método setText(). Básicamente tendrías lo mismo que con Document, pero no obligas a la gente que use tu clase a implementar tantos métodos para algo sencillo.
Finalmente, puedes cambiar totalmente de filosofía. Haz que el JFrame2 reciba en el constructor un MouseListener y ese MouseListener se lo añada al botón. Al instanciar JFrame2 en el main, pásale un new interrupcion(textField). De esta forma tienes un JFrame con botón que puede hacer cualquier cosa, dependiendo del MouseListener que se le pase desde fuera.
¿Qué forma es la buena?. Depende de la previsión que tú tengas para reutilizar el JFrame2. Si vas a hacer muchos programas que tengan un JFrame con botón dentro que haga cosas variadas, es mejor la última forma que te he comentado. Si no vas a hacer muchos programas que tengan un JFrame con botón dentro, posiblemente es mejor dejar dentro de JFrame2 la mayor cantidad de código que puedas.
Una tontería. Para que los botones hagan algo, se suele usar addActionListener() en vez de addMouseListener().
Se bueno. |