Posts etiquetados ‘Swing’

Hola amigos algunos alumnos me preguntaron cual es la mejjor forma de crear una aplicaion de escritorio, y decicdi crear este post para que sea una guia lo primero que vamos a rea lizar es crear un nuevo proyecto y seleccionamos “java Desktop Apclication”

Luego pasomos a la siguiente ventana del asistente donde le damos un nombre a nuestro proyecto y seleccionamos el tipo de aplicacion ya sea una aplicación básica o una aplicacón de base de datos, para casaos de este ejemplo delecciono “Basic Application”

A continuación Netbeans crea automaticamente las clases necesarias para la aplicación asis como los correspondientes resources que vamos a utilizar en la aplicación

el siguiente paso vamos a las propiedades de nuestro proyecto

A continuación seleccionamos la opción Application donde vamos a editar la información básica de la aplicacion

luego vamos a la opción desktop App donde vamos a editar la información de la aplicaion y donde vamos a seleccionar el Look and feel en este caso utilizo Nimbus com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel (Para utliza Nimbus tu tienes que tener installado el jdk se update 10 caso contrario no podras utilizar Nimbus lo cual lo puedes descargar de la pagina de Sun) luego presionamos Ok


Ahora podemos ejecutar(F6) nuestra aplicación la cual se vera de la siguiente forma

Donde nosotros podemos ingresar al About de la aplicación y ya tenenmos inclusive la información que editamos en propiedades del proyecto

A continuacion vamos a crear un dialogo para nuestra aplicación

Luego creamos la interface, utilizo varios componentes básicos

Luego abro Demoview, y en la barra de Menu añado un Jmenu y dentro de este un JmenuItem

dando clic derecho sobre el JmenuItem selecciona la opción “Set Action”

Aqui vamos a seleccionar en Action “Create New Action”, luego escogemos “Application : emo.DemoAPP” para Action’s class, damos un nombre a nuestra accion en Actio’s method “DemoAction” editamos el Texto, el tooltip y el acelerador de teclado, adicionalmente puedes selecionar iconos para la accion

Luego en la clase DemoApp se creo un metodo el cual lo vamos a completar para que quede asi

Lugo al ejecutar la aplicación y presionar dentro de esta Crtl+M (Acelerador para nuestro Dialog0) se muestra

y listo tenemos nuestra aplicaion un paso final ahora vamos a ponerle un SplashScreen a nuestra aplicación , en el navegador de proyectos damos clic sobre files y abrimos el archivo manifest.mf el cual debe quedar asi: (El splash es la imagen que por defecto esta en nuestra aplicación tu puedes editarla

Lo que nos queda es construir la aplicacion que lo realizamos presionando Shift+F11 el cual creara una carpeta dist dentro de nuestro proyecto y dentro de la cual esta demo.jar la cual ya la podemos ejecutar

y listo tenemos nuestra aplicación lista si deseas puedes bajar el proyecto desde aqui o desde la barra lateral

Update

Ahora puedes encontrar este panel y otros componentes en EdisoncorSx que es una recopilación de estos trabajos y que iré  escribiendo de como utilizarla con ejemplos

Y de como aplicar otras caracterisiticas de jFrame transpaente

Anuncios

hola amigos como estan hace varios dias me preguntaron de como crear una barra de titulo para un frame personalizado , aqui vamos a describir los principales aspectos a tomar e cuenta cuando queremos realizar este tipo de paneles, vale destacar que este ejemplo esta basado en el proyecto Aerith presentado en javaOne, de donde pueden revisar el codigo, aunque aqui dejamos la parte tratada en este post

Title panel

fijense que en la imagen se a puesto 3 barras de titulos donde ustedes pueden manejar el comportamiento de la ventana, los botones estan dados por imagenes que tambien se incluyen en el proyecto de ejemplo que pueden bajarlo de la barra lateral

JButton con destello de luz

Publicado: diciembre 12, 2007 en java, Swing
Etiquetas:, , , ,

Luego de estar ausente por varios dias por motivo de trabajo, vuelvo a escribir, esta vez vamos a realizar un JButton que al momento de pasar el Mouse sobre el, este iluminara

JButton Light

el codigo de este ejemplo lo puedes encontrar en la barra lateral derecha

JTextField con Validación

Publicado: noviembre 30, 2007 en java, Swing
Etiquetas:, , , ,

La mayoria de problemas que se tiene cuando se crea una aplicación de escritorio es la validación de nuestros formularios, el dia de hoy vamos a crear un TextField que nos dara la facilidad de saber visualmente cuando los datos ingresados en dicho textfield estan bien, o la vez nos da la opción de poder escoger entre 5 estados:

Validación de TextField

Pueden descargar el Codigo fuente desde la caja de codigo a la derecha o dando clic aqui

Beans binding

Publicado: noviembre 26, 2007 en Beans binding, NetBeans, Swing
Etiquetas:, , ,

Hola Amigos en esta oportunidad vamos a crear un pequeño ejemplo utilizando una de las nuevas caracteristicas que nos trae Netbeans 6.0, es el beans binding, el cual al momento de desarrollar aplicaciones de escritorio nos ahorra la escritura de codigo:

lo primero que se va a crear es una clase persona la cual va asi:


package beansbinding;

import java.util.ArrayList;
import java.util.List;

/**
*
* @author Edisoncor
*/
public class Persona {

private String dni;
private String nombres;
private String apellidos;

public Persona(){

}

public Persona(String dni,
String apellidos,
String nombres){
this.dni=dni;
this.apellidos=apellidos;
this.nombres=nombres;
}

public String getDni() {
return dni;
}

public void setDni(String dni) {
this.dni = dni;
}

public String getNombres() {
return nombres;
}

public void setNombres(String nombres) {
this.nombres = nombres;
}

public String getApellidos() {
return apellidos;
}

public void setApellidos(String apellidos) {
this.apellidos = apellidos;
}

@Override
public String toString() {
return getApellidos() + + getNombres();
}

public List getLista(){
ArrayList<Persona> lista = new ArrayList<Persona>();
lista.add(new Persona(1101,Juan,Cabrera));
lista.add(new Persona(1102,Luis,Marin));
lista.add(new Persona(1103,Pedro,Olmedo));
lista.add(new Persona(1104,Jorge,Ortiz));
lista.add(new Persona(1105,Antonio,Alvarez));
return lista.subList(0, lista.size());
}

}

Es una clase POJO sencilla la cual cuenta con tres atributos: dni, apellidos y nombres, ademas podemos observar que se sobreescribio el metodo toString() a continuación vamos a crear una nueva ventana (JFrame) a la cual le vamos añadir un jComboBox

BeansBinding

a Continuación arrastramos la clase Persona desde el navegador de proyectos hasta el frame que estamos creando, ustedes se fijaran que se añadio a otros componentes en la ventana Inspector

Beans Binding

A continuacion damos click derecho sobre el jComboBox, luego seleccionamos el submenu bind y damos click sobre elements,

Beans Binding

luego se nos presenta el cuadro dialogo bind cboListaPersonas donde seleccionamos:

  • Binding Source : persona
  • Binding Expresions : $(Lista)

y a continuacion damos clic sobre OK

BeansBinding

A continuación añadimos tres etiquetas y tres JTextField dentro de un Panel

Beans Binding

A continuación damos clic derecho sobre txtDNi (jTextField) del submenu bind seleccionamos text y luego seleccionamos

  • Binding Source: cboListaPersonas (El JComboBox)
  • Binding Expression: $(SelectedItem), al cual le añadimos .dni que hace referencia a la propiedad que se desea vincular, lo que nos queda $(SelectedItem.dni)

Luego damos clic sobre OK

Beans binding

Luego realizamos el mismo proceso para los Jtexfields para las demas propiedades, luego la aplicación queda asi:

Beans binding

Tanbien tenemos la posibilidad de poder utilizar convertidores tambien pueden descargar el proyecto completo

beansbinding8.jpg

JPanel Redondeado

Publicado: noviembre 26, 2007 en General, NetBeans, Swing
Etiquetas:, , , ,

En una entrega anterior se vio como crear un panel semitransparente la cual era una clase que hereda de JPanelRound aqui esta el codigo fuente de este panel que tiene las esquinas redondeadas:

Panel rdondeado

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.RenderingHints; import java.awt.geom.RoundRectangle2D;
import javax.swing.JPanel;

/**
*
* @author Edisoncor
*/
public class JPanelRound extends JPanel{

    private Color colorPrimario = new Color(0x666f7f);
    private Color colorSecundario = new Color(0x262d3d);
    private Color colorContorno = new Color(0x262d3d);
    private int arcw=20;
    private int arch=20;
   
    public JPanelRound() {
        super();
        setOpaque(false);
    }
   
   
     @Override
    protected void paintComponent(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON);
       
       
         Paint oldPaint = g2.getPaint();
          RoundRectangle2D.Float r2d = new RoundRectangle2D.Float(
                    0,0,getWidth(),getHeight()-1,getArcw(),getArch());
            g2.clip(r2d);
            g2.setPaint(new GradientPaint(0.0f, 0.0f,getColorPrimario().darker(),
                    0.0f, getHeight(),getColorSecundario().darker()));
            g2.fillRect(0,0,getWidth(),getHeight());
           
            g2.setStroke(new BasicStroke(4f));
            g2.setPaint(new GradientPaint(0.0f, 0.0f,getColorContorno(),
                    0.0f, getHeight(), getColorContorno()));
            g2.drawRoundRect(0, 0, getWidth()-2 , getHeight() -2, 18, 18);
       
        g2.setPaint(oldPaint);
        super.paintComponent(g);
    }

    public Color getColorPrimario() {
        return colorPrimario;
    }

    public void setColorPrimario(Color colorPrimario) {
        this.colorPrimario = colorPrimario;
    }

    public Color getColorSecundario() {
        return colorSecundario;
    }

    public void setColorSecundario(Color colorSecundario) {
        this.colorSecundario = colorSecundario;
    }

    public Color getColorContorno() {
        return colorContorno;
    }

    public void setColorContorno(Color colorContorno) {
        this.colorContorno = colorContorno;
    }

    public int getArcw() {
        return arcw;
    }

    public void setArcw(int arcw) {
        this.arcw = arcw;
    }

    public int getArch() {
        return arch;
    }

    public void setArch(int arch) {
        this.arch = arch;
    }
}
 

Aqui vamos a observar que se definen los siguientes atributos:

  • colorPrimario que va a representar el color de la parte superior del Panel
  • colorSecundario representa el color de la parte inferior del panel
  • colorContorno el color alrededor del panel
  • arcw representa el angulo horizontal y
  • arch que representa el angulo vertical para el Panel

Hola amigos luego de una ausencia(por motivos laborales) estoy de nuevo aqui para escribir un nuevo tema en esta ocaci’on vamos a crea un panel ue va a tener un aspecto semitransparente

El panel va a quedar de esta forma:

Panel Semitranperente

El codigo fuente para crearlo es package swingec.panel;

Nota la clase JPanelRound la podemos ver aqui:

import java.awt.AlphaComposite;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;

/**
*
* @author Edisoncor
*/
public class JPanelTransparente extends JPanelRound{

private float tran= 0.8f;

public JPanelTransparente(){

}

@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
AlphaComposite old = (AlphaComposite) g2.getComposite();
g2.setComposite(AlphaComposite.SrcOver.derive(getTran()));
super.paintComponent(g);
g2.setComposite(old);
}

public float getTran() {
return tran;
}

public void setTran(float tran) {
this.tran = tran;
}

}

Donde la variable tran representa el nivel de transparencia que se desea para el panel, tambien podemos observar

AlphaComposite old = (AlphaComposite) g2.getComposite(); que salve la composicion actual del panel, luego
g2.setComposite(AlphaComposite.SrcOver.derive(getTran())); le damos la nueva informacion para el panel, luego se llama a super.paintComponent(g); para que los componentes agregados se dibujen y por ultimo restauramos la composicion  de Graphics con :  g2.setComposite(old);

Update

Ahora puedes encontrar este panel y otros componentes en EdisoncorSx que es una recopilación de estos trabajos y que iré  escribiendo de como utilizarla con ejemplos

Y de como aplicar otras caracterisiticas de jFrame transpaente