Lo primero es lo primero, donde está .. la ventana. No nos podemos olvidar que Java es un lenguaje ideado para ser interplataforma. Esto quiere decir que las ventanas no pueden ser las ventanas de Gnome o de Kde. Sinó que son ventanas java que se adaptarán al entorno gráfico que haya en la máquina que ejecute el programa. Por eso Java tiene el paquete abstracto AWT que nos permite dibujar las ventanas ahí.
Por eso para hacer nuestra ventana grafica lo que hacemos es derivar de la clase Frame ya predefinida por nuestros queridos amigos de SUN y que es la que se encarga del trabajo sucio. Para que nosotros hagamos algo tan facil y sencillo como esto:
import java.awt.*;
import java.awt.event.*;
public class Gui2 extends Frame{
public static void main(String[] args) {
// TODO Auto-generated method stub
Gui2 ventana = new Gui2();
ventana.setSize(300,200);
ventana.setTitle("Ventana");
ventana.setVisible(true);
}
}
pa'que veas! … Pero… no puedo cerrar esa ventana…. Bueeno… aqui va el código de como se hace para que puedas cerrar la ventana:
import java.awt.*;
import java.awt.event.*;
class oyente extends WindowAdapter{
// los window adapeter son las cosas que se le pueden
// añadir a la ventana
Gui2 vp;
public oyente(Gui2 ventanaPrincipal){
super(); // inicializo en constructor del padre
this.vp= ventanaPrincipal;
}
public void windowClosing(WindowEvent e){
vp.dispose();
System.exit(0); // salida con resultado 0 == sin errores
}
}
public class Gui2 extends Frame{
public Gui2(){
super();
addWindowListener(new oyente(this));
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Gui2 ventana = new Gui2();
ventana.setSize(300,200);
ventana.setTitle("Ventana");
ventana.setVisible(true);
}
}
y… ahi va un poquito de todo… un boton, una etiqueta, un area de texto y ya.
import java.awt.*;
import java.awt.event.*;
class oyente extends WindowAdapter{
// los window adapeter son las cosas que se le pueden
// añadir a la ventana
Gui2 vp;
public oyente(Gui2 ventanaPrincipal){
super(); // inicializo en constructor del padre
this.vp= ventanaPrincipal;
}
public void windowClosing(WindowEvent e){
vp.dispose();
System.exit(0); // salida con resultado 0 == sin errores
}
}
public class Gui2 extends Frame{
public Gui2(){
super();
addWindowListener(new oyente(this));
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Gui2 ventana = new Gui2();
ventana.setSize(300,200);
ventana.setTitle("Ventana");
Panel panel = new Panel();
panel.setLayout(new GridLayout(1,5));
Label et = new Label("etiqueta de panel");
panel.add(et);
Button boton = new Button("boton sud");
panel.add(boton);
TextField txt = new TextField("Nord: aqui es por escriure");
ventana.add(txt, BorderLayout.NORTH);
TextArea txta=new TextArea("Centre:\n tambe hi pots "+
"escriure aquí...");
ventana.add(txta, BorderLayout.CENTER);
Label etiqueta = new Label("Etiqueta");
ventana.add(etiqueta, BorderLayout.WEST);
ventana.add(panel, BorderLayout.SOUTH);
ventana.setVisible(true);
}
}