some image

Tag swing

Creando un JFrame desde cero

Etiquetas: , , Blog, Programación No comments

 

Captura de pantalla 2015-06-04 22.56.35

Si estás comenzando en el gran mundo de JAVA (como yo), alguna ves te habrás preguntado como hacer gráfico e interactivo tu programa… Quizás habrás visto algunos vídeos en Youtube donde muestran como fácilmente  y con unos cuantos clicks haces una interfaz gráfica usando la opción de crear un nuevo JFrame Form que traen algunos IDE’s (Yo lo hice).

El punto es que cuando revisas el código e intentas entenderlo puede ser algo complejo para ti (Si es que ahora estás comenzando). Por esa razón tome la decisión de investigar como rayos se puede hacer un Frame desde cero y aquí les va.

/**
* Programa: TuJFrame.java
* Autor: Juan Gómez
* Blog: Codes and Tags
* Fecha: 05/06/2015
*/

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class TuJFrame extends JFrame{
    //Se declaran atributos
    private Container contenedor;
    private JLabel titulo, juan, edwin, nombreJuan, nombreEdwin;
    private ImageIcon imagen1, imagen2;
    private JButton boton;
    public TuJFrame() {
        //Se creal el contenedor del panel que tendra todos los elementos
        contenedor = getContentPane();
        contenedor.setBackground(Color.white); //Se le asigna el color blanco al fondo del contenedor;
        titulo = new JLabel("Codes and Tags");
        titulo.setFont(new Font("Arial", Font.BOLD, 28)); // Cambio en el tipo de fuente
        imagen1 = new ImageIcon("images/edwin.png"); // Se crea un nuevo objeto tipo icono que contendra la imagen ubicada en la dirección "images/edwin.jpg"
        edwin = new JLabel(imagen1);// El JLabel "edwin" tendrá como contenido el ImageIcon "imagen1"
        imagen2 = new ImageIcon("images/juan.png");
        juan = new JLabel(imagen2);
        nombreEdwin = new JLabel("Edwin Torres");
        nombreEdwin.setFont(new Font("Arial", Font.ITALIC, 16));
        nombreEdwin.setVisible(false); // Por el momento no es visible el contenido del JLabel "nombreEdwin"
        nombreJuan = new JLabel("Juan Gomez");
        nombreJuan.setFont(new Font("Arial", Font.ITALIC, 16));
        nombreJuan.setVisible(false);
        boton = new JButton("Pulsame!");
        //Se define como nulo el Layout
        contenedor.setLayout(null);
        //Se le agregan los objetos al contenedor y luego se le asignas las posiciones a estos.
        contenedor.add(titulo).setBounds(250,10, 250, 40);
        contenedor.add(edwin).setBounds(42, 80, 287, 286);
        contenedor.add(juan).setBounds(359, 80, 287, 288);
        contenedor.add(nombreEdwin).setBounds(135, 386, 100, 20);
        contenedor.add(nombreJuan).setBounds(452, 386, 100, 20);
        contenedor.add(boton).setBounds(288, 430, 100, 20);

        //Evento para cuando se haga click sobre el boton cambie el estado del setVisible a "true" de los objetos nombreEdwin y nombreJuan
        // y al final muestre un mensaje en un JOption.
        boton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                nombreEdwin.setVisible(true);
                nombreJuan.setVisible(true);
                JOptionPane.showMessageDialog(null, "Ves lo fácil que es crer tu propio JFrame..");
            }
        });

    }
    public static void main(String args[]){
        //Se instancia la clase
        TuJFrame mostrar = new TuJFrame();
        //Se asigna un tamaño al JFrame
        mostrar.setSize(680,530);
        //Se muestra el JFrame
        mostrar.setVisible(true);
        //Activa la opción de cerrar la ejecución del programa con la (X)
        mostrar.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    }
}

Y después de hacer click en el botón…VOILÀ!

Captura de pantalla 2015-06-04 23.36.19

Puedes descargar el proyecto desde mi repositorio — > JFrame desde cero