Mostrando entradas con la etiqueta Java. Mostrar todas las entradas
Mostrando entradas con la etiqueta Java. Mostrar todas las entradas

martes, 29 de noviembre de 2011

Utilizando el Metodo JFileChooser

JFileChooser es un componente JAVA, que nos permite selecionar y/o grabar cualquier archivo basicamente dentro de nuestro ordenador, en este oportunidad fijaremos la antencion en la funcion de “Seleccion o Abrir”

El ejemplo demostracion trata sobre: “Selecionar un archivo imagen (.jpg, .gif, .png) y luego tendremos q visualizar dicha imagen” aqui la ventana ilustrativa.

Lo Primero q tendremos q hacer es dibujar nuestra interface grafica de usuario(GUI) en este caso “WindowDemoFile”, lo unico nuevo en esta clase es el “JFileChooser”
 
public JFileChooser jfcExaminarEntrada;
jfcExaminarEntrada = new JFileChooser();
Esta demas decir q la imagen se visualizara dentro de un “JDesktopPane”, aqui en fuente:
 
import  javax.swing.*;
public class WindowDemoFile extends JFrame {

    public WindowDemoFile() {
        initComponents(); }

   private void initComponents() {
  setTitle("DEMO POR INFORUX");
  setResizable(false);
  jfcExaminarEntrada = new JFileChooser();
        jPanel1 = new  JPanel();
        jtfRutaEntrada = new  JTextField();
        jbExaminar = new  JButton();
        jbLoad = new  JButton();
        jPanel3 = new  JPanel();
        jDesktopPane1 = new  JDesktopPane();

        setDefaultCloseOperation( WindowConstants.EXIT_ON_CLOSE);
        getContentPane().setLayout(null);

        jPanel1.setBorder( BorderFactory.createTitledBorder("Ubica el Archivo Imagen"));
        jPanel1.setLayout(null);
        jPanel1.add(jtfRutaEntrada);
        jtfRutaEntrada.setBounds(20, 30, 350, 19);

        jbExaminar.setText("...");
        jPanel1.add(jbExaminar);
        jbExaminar.setBounds(400, 30, 50, 25);

        jbLoad.setText("load");
        jPanel1.add(jbLoad);
        jbLoad.setBounds(460, 30, 70, 25);

        getContentPane().add(jPanel1);
        jPanel1.setBounds(30, 30, 550, 70);

        jPanel3.setBorder( BorderFactory.createTitledBorder("Imagen Cargada"));
        jPanel3.setLayout(null);
        jPanel3.add(jDesktopPane1);
        jDesktopPane1.setBounds(20, 30, 530, 340);

        getContentPane().add(jPanel3);
        jPanel3.setBounds(20, 110, 570, 390);

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-618)/2, (screenSize.height-542)/2, 618, 542);

  /*declaramos una referencia a nuestra clase control de eventos*/
  ControlaEventos controlaEventos =new ControlaEventos (this);
  jbExaminar.addActionListener(controlaEventos);
  jbLoad.addActionListener(controlaEventos);
    }

    public static void main(String args[]) {
              new WindowDemoFile().setVisible(true); }

 public JFileChooser jfcExaminarEntrada;
    public JButton jbExaminar;
    public JButton jbLoad;
    public JDesktopPane jDesktopPane1;
    public JPanel jPanel1;
    public JPanel jPanel3;
    public JTextField jtfRutaEntrada;
}
La segunda clase es de nombre “ControlaEventos”, su mismo nombre lo dice, controla todos los eventos producidos por el usuario. solo controlaremos los 2 botones con nombres q muestran “…” y “load”.
La novedad de esto, es q al producirse el evento en el boton q llama al “JFileChoose”. este mostrara un dialogo y dentro de el, estara el componente. Para decirle cual de lo 2 tipos (open y/o save), utilizamos los metodos showOpenDialog o showSaveDialog, segun nuestras necesidades.
int result = d.showOpenDialog(ventana para seleccionar un archivo);
 int result =d.showSaveDialog(ventana para guardar un archivo);
donde “d” es el frame, internalFrame, mejro dicho es la ventana donde se sobrepondra, ademas esta llamada no entrega nada hasta que el usuario ha aceptado un archivo o cancelado la entrada de ldialogo. El valor de retorno es:
JFileChooser.APROVE_OPTION (si haces click en entrar o gravar)
JFileChooser.CANCEL_OPTION. ( si hay evento en el boton cancelar del JFileChooser.)
Aqui el fuente:
import java.awt.event.*;
import java.io.File;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class ControlaEventos implements ActionListener{
 WindowDemoFile ventana;
 File fileImagen;
 public ControlaEventos(WindowDemoFile objeto){
  ventana = objeto;
 }
 public void actionPerformed(ActionEvent evento)
    {
  if (evento.getSource()==ventana.jbExaminar){//si hay evento en el boton examinar
   int returnVal = ventana.jfcExaminarEntrada.showOpenDialog(ventana);//mostramos el jFileChooser
    if (returnVal == ventana.jfcExaminarEntrada.APPROVE_OPTION) {//nos aseguramos q haya selecionado algun archivo
              fileImagen = ventana.jfcExaminarEntrada.getSelectedFile();//obtenemos el archivo selecionado
    ventana.jtfRutaEntrada.setText(fileImagen.toString()); }}//mostramos la ruta del archivo en la caja de texto

  if (evento.getSource()==ventana.jbLoad){//si hay evento en el boton load
    if ( fileImagen != null) {
              cargarImagen(ventana.jDesktopPane1,fileImagen);}}
 }

 /*este metodo recibe el jdeskopPane y el archivo imagen*/
 public  void cargarImagen(javax.swing.JDesktopPane jDeskp,File fileImagen)
 {
        try{
   BufferedImage image = ImageIO.read(fileImagen);
           jDeskp.setBorder(new PintaImagen(image)); }
        catch (Exception e){   System.out.println("No cargo imagen, sorry");   }
    }
}

La ultima clase, es la misma a la entrada anterior, ahy se explica la clase “PintaImagen”
de todas formas aqui el fuente:
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.image.BufferedImage;
import javax.swing.border.Border;

public class PintaImagen implements Border{

 private   BufferedImage image ;

 public PintaImagen(BufferedImage image ) {
  this.image=image;}

 public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
 int x0 = x+ (width-image.getWidth())/2;
 int y0 = y+ (height-image.getHeight())/2;
 g.drawImage(image,x0,y0,null); }

    public Insets getBorderInsets(Component c) {
 return new Insets(0,0,0,0);}

    public boolean isBorderOpaque() {
 return true; }
}
Atravez de esta clase convertirlos el “File” a una imagen para pintarse en un JDesktopPane.
Aqui el pantallazo

Security & Networking: Instalación JDK + Netbeans en Ubuntu

Primero descargamos el JDK + NetBeans desde la siguiente pagina http://www.oracle.com/technetwork/java/javase/downloads/jdk-7-netbeans-download-432126.html. NetBeans es un entorno de desarrollo integrado (IDE) libre, hecho principalmente para el lenguaje de programación Java. En la pagina descargamos el archivo para linux, de nombre jdk-7u1-nb-7_0_1-linux-ml.sh, este archivo contiene el JDK y NetBeans.

Versiones:
NetBeans versión 7.0.1
Java versión 1.7.0_01
Ubuntu 11.10

Una vez finalizado la descarga, nos dirigimos desde consola en la ubicación donde tenemos el archivo descargado y realizamos lo siguiente.
chmod a+x jdk-7u1-nb-7_0_1-linux-ml.sh
./jdk-7u1-nb-7_0_1-linux-ml.sh
gedit /etc/bash.bashrc
Si en el asistente de instalación lo dejamos todo por defecto (es decir siguiente, siguiente y finalizar) al final del archivo bash.bashrc, agregamos los siguiente.
export JAVA_HOME=/usr/local/jdk1.7.0_01
export NETBEANS_HOME=/usr/local/netbeans-7.0.1
export PATH=$JAVA_HOME/bin:$NETBEANS_HOME/bin:$PATH
Una vez realizado este proceso podremos verificar que todo este correcto escribiendo en consola el comando java -version, este comando invoca el compilador de Java y nos muestra la version de Java instalado.
root@computer:/home/delfi# java -versión
java version "1.7.0_01"
Java(TM) SE Runtime Environment (build 1.7.0_01-b08)
Java HotSpot(TM) Server VM (build 21.1-b02, mixed mode)
Lo anterior comprueba que tenemos instalado Java correctamente y esta listo para escribir y compilar código Java desde nuestro Ubuntu. Si no sale lo anterior es necesario que tengamos que reiniciar nuestro equipo.