Crear una ventana en java sin necesidad de usar el asistente es una buena practica que muchos novatos deben tener en cuenta, pues una elaboración desde cero les permite comprender mejor el funcionamiento de los metodos ofrecidos por el API Java.

Por ejemplo, para poder utilizar una calculadora se recomienda saber resolver las operaciones de suma, resta, multiplicacion, division de manera que el usuario sepa lo que esta haciendo. Sucede lo mismo al momento de crear una ventana en Java ya que podrías elaborar una sin mucho trabajo utilizando el asistente que ofrece el compilador (por ejemplo: netbeans) pero no tendras idea del código detrás de esto. Es por ello que a continuación te explicare los códigos para realizar una ventana:

package ventana;

import javax.swing.JFrame;

public class Ventana {

    public static void main(String[] args) {
        JFrame v=new JFrame("Primera Ventana");
        //v.setLocation(100, 100);
        //v.setSize(600, 400);
        v.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        v.setVisible(true);
        v.add(new Panel());
        v.setBounds(100, 100, 600, 400);
        System.out.println("x=" + v.getX() + ", y=" + v.getY());
        System.out.println("ancho=" + v.getWidth() + ", alto=" + v.getHeight());
    }
    
}

Utilizando la clase JFrame se crea una ventana, esta clase tiene una serie de metodos de los cuales hablare.

setLocation(x, y): este metodo permite determinar la ubicación de la ventana de acuerdo a las dimensiones de nuestra pantalla y recibe por parametro dos valores que son las posiciones en X y Y.

setSize(ancho, alto): permite determinar el tamaño que tendra la ventana. Sin embargo, para ahorrar los 2 metodos mencionados hasta el momento existe un metodo que incluye la funcion de ambos conocido como:

setBounds(x, y, ancho, alto);

Todo va bien, pero aun falta algo importante ya que la ventana por si sola no se muestra. Debemos hacer uso del siguiente metodo:

setVisible(true): recibe por parametro un dato de tipo boolean y puede ser false o true, si pones false la ventana no sera visible y por ende sabes que sucede al pasar por parametro el valor true.

Prácticamente nuestra ventana esta terminada, pero ¿que pasa al cerrar nuestra ventana? esta no cierra completamente y podremos observar como el compilador aun dice que la ventana esta en ejecución. Para solucionar este problema debemos usar el metodo:

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE): recibe por parametro constantes de clase (simplemente son valores de tipo entero) dentro del API podemos observar los valores de cada constante y saber el comportamiento que recibe. En este caso la constante que pasamos por parametro le indica que al momento de pulsar en la X de la ventana esta debe salir y terminar el «proceso».

Finalmente el metodo:

add(panel): permite agregar un componente, siempre debemos pasar por parametro un objecto de tipo JPanel.

Las ventanas van acompañadas de uno o varios JPanel, los cuales tienen administradores de diseño que tienen un comportamiento distinto al insertar componentes, este tema sera tratado en otro articulo.