jueves, 11 de febrero de 2016

Abrir página web con Java

abrir url en java
Programa para abrir página web en Java
Aquí tenemos un programa en Java que consiste en una ventana que tiene el fondo personalizado y dos botones, uno que muestra un cuadro de diálogo cómo en este post y otro que se encarga de abrir una página web mediante la URL que le hemos especificado.

El programa sigue la estructura de programas que hemos visto anteriormente, la única diferencia significativa que tenemos ahora es que vamos a usar dos clases, una que será la encargada de crear la parte gráfica y otra que se
encargará específicamente de abrir la página web.


Dejamos aquí el código fuente completo de las dos clases:

La clase que se encarga de abrir la página web es la siguiente:

import java.awt.Desktop;
import java.net.URI;

public class AbrirURL {
public AbrirURL(String web){
  if(java.awt.Desktop.isDesktopSupported()){
           try{
                 Desktop dk = Desktop.getDesktop();
                         dk.browse(new URI(web));
             }catch(Exception e){
                  System.out.println("Error al abrir URL: "+e.getMessage());
        }
      }  
}
}

Es una clase bastante sencilla que lo único que hace es abrir una web que recibe cómo argumento.


Y la clase que se encarga de la parte gráfica es la siguiente:

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

public class VentanaConFondo 
{
    private JFrame ventana;
    private JButton b1, b2;

    public VentanaConFondo()
    {
        crearVentana();
    }

    private void crearVentana()
    {

        b1=new JButton("B1");
        b2=new JButton("B2");

        b1.setSize(50,50);
        b2.setSize(50,50);

        b1.setLocation(480,75);
        b2.setLocation(480,275);

        ventana = new JFrame ("JuegoSoftware.com");
        ventana.setSize(600,450);
        ventana.setContentPane(new JLabel(new ImageIcon("Imagenes/Img2.jpg")));
        ventana.setLocationRelativeTo(null);
        ventana.setLayout(null);
        ventana.setResizable(false);
        ventana.setVisible(true);

        ventana.setDefaultCloseOperation(ventana.EXIT_ON_CLOSE);

        ventana.add(b1);
        ventana.add(b2);

        b1.addActionListener(new o_b1());
        b2.addActionListener(new o_b2());
    }

    private class o_b1 implements ActionListener{
        public void actionPerformed(ActionEvent e)
        { 
            JOptionPane mensaje=new JOptionPane();
            mensaje.showMessageDialog(null,"Juegosoftware.com\nTu página de Juegos,\n Software y mucho +",            
                "Mensaje",JOptionPane.INFORMATION_MESSAGE);

        }
    }  

    private class o_b2 implements ActionListener{
        public void actionPerformed(ActionEvent e)
        { 

            AbrirURL paginaWeb = new AbrirURL("http://www.juegosoftware.com");

        }
    }  

}



Cómo veis lo que hacemos es usar la clase AbrirURL dentro del oyente del botón 2 que tiene de nombre b2 para que cuando lo pulsemos se abra la página que hemos especificado que en este caso es http://www.juegosoftware.com 

Si usáis este código debéis tener cuidado con los nombres de las clases y también con la imagen de fondo que pongáis en la ventana, en este caso la ventana es de 600x450 por lo que la imagen que uséis de fondo debe tener ese tamaño y debéis tener en la carpeta del proyecto una carpeta de nombre Imágenes y la imagen para el fondo debe llamarse Img2 y además debe ser de formato jpg. Si quereis usar otro tipo de imagen o hacer otros cambios ya tendréis que modificar el código.

El diagrama de clases en bluej quedaría de la siguiente forma:

diagrama de clases para abrir web en java
Diagrama de Clases de programa en Java para abrir URL
En el diagrama podéis ver que la clase VentanaConFondo utiliza la clase AbrirURL, es decir, hace uso de ella al utilizarla dentro del oyente del botón dos (b2) para poder abrir la página web.

Para que este programa sea completamente funcional lo único que le falta es el método main para poder ejecutarlo fuera del entorno de desarrollo, bastaría con crear otra clase y dentro del método main crear un objeto de la clase VentanaConFondo y ya se crearía la ventana igual que en la imagen de ejemplo de más arriba.


No hay comentarios:

Publicar un comentario