Sigo mejorando la página web de la Guardería Los Delfines, o mejor dicho Escuela Infantil los Delfines. Parece ser que la Junta de Andalucía se ha dignado a pagar aunque sea un mes, así que el 3 de Septiembre se abrirán las puertas de este centro.
Para más información la página web es http://escuelainfantillosdelfines.x90x.net/ , poniendo en google escuela infantil los delfines debería de ser suficiente.
https://www.google.es/#hl=eu&site=&source=hp&q=Escuela+Infantil+Los+Delfines&oq=Escuela+Infantil+Los+Delfines&gs_l=hp.3...1309.8981.0.9117.0.0.0.0.0.0.0.0..0.0...0.0...1c.wrCdcF3jQGI&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.&fp=2ce2f4755195f34b&biw=1280&bih=713
Un saludo,
lunes, 20 de agosto de 2012
lunes, 2 de julio de 2012
Escuela Infantil Los Delfines
Ya he terminado la web http://www.escuelainfantillosdelfines.x90x.net/ aunque todavía la tengo que pasar a su dominio. :)
Escuela Infantil Los Delfines
Escuela Infantil Los Delfines
domingo, 24 de junio de 2012
Nueva web en construcción.
Bueno, ahora me salió para ayudar a hacer una página web a una guardería de aquí de la zona (Málaga).
Ahora mismo estoy trabajando en ella, aunque lo que es la base ya está.
Por ahora, como siempre, trabajo sobre la url de x90x.net, que como siempre, funciona bien, es gratuita y para hacer la web y salir del paso hasta está muy bien. Está aquí y espero en una semanilla o así terminarla aunque con la de trabajo que tengo..
http://escuelainfantillosdelfines.x90x.net/
Un saludo.
Ahora mismo estoy trabajando en ella, aunque lo que es la base ya está.
Por ahora, como siempre, trabajo sobre la url de x90x.net, que como siempre, funciona bien, es gratuita y para hacer la web y salir del paso hasta está muy bien. Está aquí y espero en una semanilla o así terminarla aunque con la de trabajo que tengo..
http://escuelainfantillosdelfines.x90x.net/
Un saludo.
viernes, 1 de junio de 2012
Calcular Diferencias entre 2 Fechas.
En esta entrada vamos a ver cómo calcular la diferencia entre dos fechas (con formato String) y la diferencia la podremos devolver en horas, minutos, segundos o como queramos.
En nuestro caso comparamos dos fechas con el formato 2012-01-21 01:24:42, aunque puede ser con otro formato, esto se lo indicaremos de SimpleDateFormat.
Así quedaría la función:
Así desde código le pasamos las dos cadenas, inicio y final. También podemos coger registros de una Base de Datos con formato Date, parsearlo a String y luego procesarlo en esta función.
Cualquier duda no duden en contactar conmigo. Un saludo.
En nuestro caso comparamos dos fechas con el formato 2012-01-21 01:24:42, aunque puede ser con otro formato, esto se lo indicaremos de SimpleDateFormat.
Así quedaría la función:
Así desde código le pasamos las dos cadenas, inicio y final. También podemos coger registros de una Base de Datos con formato Date, parsearlo a String y luego procesarlo en esta función.
Cualquier duda no duden en contactar conmigo. Un saludo.
jueves, 31 de mayo de 2012
Acceso a un Sistema. Parte I de II
Bueno, voy a intentar explicar cómo hacer un sistema de acceso sencillo a un programa, lo que normalmente conocemos en inglés como "login".
El esquema del programa es muy básico:
Supongo que esta entrada es muy básica, pero me lo ha pedido un compañero de forosdelweb y bueno, he decidido hacerlo, aunque no voy a incluir contraseñas cifradas ni nada por el estilo, todo muy básico puesto que esto va destinado a personas que se están iniciando.
La estructura del programa será este:
La clase principal contendrá únicamente la llamada a la ventana principal:
Ahora vamos con Ventana Principal. En esta ventana tendremos 2 etiquetas (JLabel) y 2 Campos de Texto (JTextField). Si se pulsa sobre Aceptar, conectaremos con la Base de Datos, en mi caso Mysql.
Aquí el contenido de VentanaPrincipal.java
Para poder conectar con nuestra Base de Datos necesitamos el driver. Lo podemos encontrar aquí: http://dev.mysql.com/downloads/connector/j/
Luego una vez descargado lo ponemos en una carpeta lib en /src o bien lo linkamos, como nosotros queramos.
Ahora nos queda AccesoSistema.java, en donde vamos a presentar dos botones para Crear Usuario o para Listar Usuarios. Quedaría de la siguiente manera:
Así es cómo queda al ejecutarlo:
Aquí termina la parte I, mañana posiblemente termine la segunda parte. No he explicado mucho pero cualquier duda que tengais podéis preguntarla.
Un saludo.
El esquema del programa es muy básico:
Supongo que esta entrada es muy básica, pero me lo ha pedido un compañero de forosdelweb y bueno, he decidido hacerlo, aunque no voy a incluir contraseñas cifradas ni nada por el estilo, todo muy básico puesto que esto va destinado a personas que se están iniciando.
La estructura del programa será este:
La clase principal contendrá únicamente la llamada a la ventana principal:
Ahora vamos con Ventana Principal. En esta ventana tendremos 2 etiquetas (JLabel) y 2 Campos de Texto (JTextField). Si se pulsa sobre Aceptar, conectaremos con la Base de Datos, en mi caso Mysql.
Aquí el contenido de VentanaPrincipal.java
Para poder conectar con nuestra Base de Datos necesitamos el driver. Lo podemos encontrar aquí: http://dev.mysql.com/downloads/connector/j/
Luego una vez descargado lo ponemos en una carpeta lib en /src o bien lo linkamos, como nosotros queramos.
Ahora nos queda AccesoSistema.java, en donde vamos a presentar dos botones para Crear Usuario o para Listar Usuarios. Quedaría de la siguiente manera:
Así es cómo queda al ejecutarlo:
Ventana Principal |
Ventana Sistema |
Aquí termina la parte I, mañana posiblemente termine la segunda parte. No he explicado mucho pero cualquier duda que tengais podéis preguntarla.
Un saludo.
miércoles, 23 de mayo de 2012
Crear un Gráfico con Datos de una Base de Datos usando JFreeChart
Buenas tardes a todos. En esta entrada voy a explicar brevemente cómo poner un gráfico en vuestra aplicación Swing, aunque de igual manera se puede implementar para un applet o lo que se quiera.
La idea es montar un gráfico extrayendo datos desde una Base de Datos. El cómo conectarse a una BD no lo voy a explicar aunque si alguien necesitara que se lo explicase, solamente tiene que decirmelo.
Lo primero que tenemos que hacer es ir la web de JFreeChart en dónde tendremos que descargarnos el jar generado. Necesitaremos tanto el jar de JFreeChart como el de common, adjunto en el mismo.
Lo agregamos a nuestro proyecto (Build Path) con botón derecho, propiedades y en la pestaña Añadir Jar se lo agregamos (Estoy hablando para el IDE Eclipse).
Empezamos con el código:
El código espero que esté claro, pero vamos el procedimiento es fácil:
- Conectamos a la Base de Datos -> Extraemos Datos -> Instanciamos un gráfico -> Le pasamos como argumentos los datos extraídos -> Repetir hasta que no haya datos (while rs.next() ) y luego montar y enseñar el gráfico.
Si todo os ha salido bien, nos saldrá un gráfico de este estilo:
Cabe destacara que hay un montón de tipos de gráficos. Yo he puesto el típico de Líneas, aunque tenemos de barras (bar), de área (areachart) y un montón más.
Algunos ejemplos de gráficos:
Espero que les haya servido de mucha ayuda, cualquier duda dejad un comentario.
Fuente: JFreeChart.com
Un saludo.
lunes, 21 de mayo de 2012
Ficheros Temporales en Java
Esto es una entrada un poco sencilla, pero no por ello quiera decir que no sea importante.
Los archivos temporales son muy importantes pues nos permiten almacenar datos sin tener que preocuparnos luego de borrar éste o de buscar la ruta donde guardamos el fichero. En fin, no hay mucho que explicar, si nos da igual si los datos se guardan o no, usaremos archivos temporales.
Para crear un fichero temporal, es simple, en las propiedades de File podemos verlo, aquí un enlace con toda la documentación de File
¡IMPORTANTE!
Como siempre en el manejo de archivos tenemos que controlar la excepción (aunque se nos avisará de ello) IOException.
Una cosa bastante importante que añadir es que el fichero no se borrará a menos que nosotros se lo indiquemos, para ello tenemos que borrarlo con .deleteOnExit(), aunque también tenemos delete() si lo queremos borrar cuando queramos.
Borrar cuando cerremos la aplicación fTemporal.deleteOnExit();
Borrar en un momento determinado fTemporal.delete();
Ya solo nos queda trabajar con el fichero. Leer datos o escribir en él.
Ya solo nos queda trabajar con el fichero. Leer datos o escribir en él.
Podemos utilizar:
A) FileInputStream, FileOuputStream, FileReader o FileWriter
B) Los BufferedReader, BufferedInputStream, BufferedWriter y BufferedOutputStream
El grupo A) usan acceso directo al disco. Por lo que si vamos a realizar muchas lecturas o escrituras, no compensa además de que la velocidad de acceso al disco duro se va a notar bastante.
El grupo B) usan buffer, es decir, controlan el acceso al disco duro.
Dependiendo de lo que queramos escribir en nuestro fichero vamos a necesitar optar por uno u otro y en función a los requerimientos de acceso al disco duro. También cabe la posibilidad de que tengamos que escribir en nuestro fichero pasándole como argumento un(os) String(s) o por ejemplo Array de Bytes, con lo cual tenemos que hacerlo de una u otra manera.
Espero que os haya servido, cualquier duda dejen un comentario.
Un saludo :)
sábado, 5 de mayo de 2012
Cambiar color de las filas de una tabal (Jtable) en Java
En esta entrada os voy a comentar como hacer para cambiar los colores de las filas de un JTable en función de un valor o del valor de varios argumentos o celdas que vosotros queráis. Es algo realmente sencillo, ya veréis que con tan solo apenas 20 líneas de código se puede hacer... En este caso vamos a hacer que la tabla tenga las filas azules cuando el usuario este ACTIVO y que la fila esté roja cuando el usuario esté INACTIVO.
Me salto el paso de cómo crear la tabla ya que sino me va a quedar un código bastante amplio. Si alguien necesita que le diga como hacer una Tabla, ya sea con datos desde un archivo, desde BD, nada más que tiene que preguntarmelo.
Vamos allá.
Con la tabla montada, tenemos que hacer lo siguiente:
TablaClientes.setDefaultRenderer(Object.class, new FormatoTablaClientes());
Con esto estamos asignando un nuevo render a nuestra tabla. Para ello nos creamos una nueva clase FormatoTablaClientes que herede (extends) de DefaultTableCellRenderer.
El contenido de esta clase que hereda de DefaultTableCellRenderer es el siguiente:
Si queremos que sea solamente el color de una celda, pues en este caso, solamente la celda de ACTIVO o INACTIVO deberíamos poner: if(String.valueOf(table.getValueAt(row,column)).equals("ACTIVO"))
Podemos jugar con lo siguiente:
isSelected -> Si se selecciona la fila, columna, celda, etc... cambiar de color.
focused -> Si se ha hecho el foco sobre algo cambiar el color.
Y todo lo que se os ocurra.
Espero que os haya servido de ayuda y si tenéis cualquier duda sólo tenéis que preguntar :)
Un saludo.
Me salto el paso de cómo crear la tabla ya que sino me va a quedar un código bastante amplio. Si alguien necesita que le diga como hacer una Tabla, ya sea con datos desde un archivo, desde BD, nada más que tiene que preguntarmelo.
Vamos allá.
Con la tabla montada, tenemos que hacer lo siguiente:
TablaClientes.setDefaultRenderer(Object.class, new FormatoTablaClientes());
Con esto estamos asignando un nuevo render a nuestra tabla. Para ello nos creamos una nueva clase FormatoTablaClientes que herede (extends) de DefaultTableCellRenderer.
El contenido de esta clase que hereda de DefaultTableCellRenderer es el siguiente:
import java.awt.Color;
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
public class FormatoTablaUsuarios extends DefaultTableCellRenderer
{
public Component getTableCellRendererComponent
(JTable table, Object value, boolean selected, boolean focused, int row, int column)
{
// SI EN CADA FILA DE LA TABLA LA CELDA 5 ES IGUAL A ACTIVO COLOR AZUL
if(String.valueOf(table.getValueAt(row,5)).equals("ACTIVO")) setForeground(Color.blue);
// SI NO ES ACTIVO ENTONCES COLOR ROJO
else setForeground(Color.red);
super.getTableCellRendererComponent(table, value, selected, focused, row, column);
return this;
}
}
Si queremos que sea solamente el color de una celda, pues en este caso, solamente la celda de ACTIVO o INACTIVO deberíamos poner: if(String.valueOf(table.getValueAt(row,column)).equals("ACTIVO"))
Podemos jugar con lo siguiente:
isSelected -> Si se selecciona la fila, columna, celda, etc... cambiar de color.
focused -> Si se ha hecho el foco sobre algo cambiar el color.
Y todo lo que se os ocurra.
Espero que os haya servido de ayuda y si tenéis cualquier duda sólo tenéis que preguntar :)
Un saludo.
viernes, 4 de mayo de 2012
Imprimir JTable directamente eligiendo impresora.
En esta entrada os voy a poner un ejemplo de como imprimir una Tabla en vuestra impresora directamente, es muy sencillo así que no tiene muchas florituras.
La salida por la impresora será Un encabezado, la tabla en el cuerpo de la hoja y en el pie el número de página.
public class Principal {
private static JButton btImprimir;
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com. sun.java.swing.plaf.nimbus. NimbusLookAndFeel");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch ( UnsupportedLookAndFeelExceptio n e) {
e.printStackTrace();
}
JFrame v = new JFrame();
v.setBounds(0,0,835,360);
v.setLayout(null);
v.setVisible(true);
v.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
final String [] columnas = {"NOMBRE", "APELLIDOS", "DNI", "ESTADO", "BLOQUEO", "ALTA"};
final DefaultTableModel dtm = new DefaultTableModel();
final JTable tabla1 = new JTable(dtm);
tabla1. setUpdateSelectionOnSort(true) ;
for (int i=0; i<6; i++){
dtm.addColumn(columnas[i]);
}
tabla1. setPreferredScrollableViewport Size(new Dimension(800,200));
JScrollPane scrollPane = new JScrollPane(tabla1);
v.add(scrollPane);
scrollPane.setBounds(10,10, 800,200);
final Object [] fila2 = {"Carlos", "Mateo Ruiz", "71024121F", "ACTIVO", "0", "2012/02/02"};
final Object [] fila3 = {"Marta", "Perez Hidalgo", "29116227H", "ACTIVO", "1", "2010/21/10"};
dtm.addRow(fila2);
dtm.addRow(fila3);
btImprimir = new JButton("IMPRIMIR");
btImprimir.setBounds(10, 250, 120, 25);
v.add(btImprimir);
btImprimir.addActionListener( new java.awt.event.ActionListener( ) {
public void actionPerformed(java.awt. event.ActionEvent evt) {
try {
// tabla1.print();//envia los datos de la tabla a la impresora
MessageFormat headerFormat = new MessageFormat("Listado de Clientes 2010-2012);
MessageFormat footerFormat = new MessageFormat("- Página {0} -");
tabla.print(PrintMode.FIT_WIDTH, headerFormat, footerFormat);
} catch (PrinterException ex) {
JOptionPane.showMessageDialog(null, "No se ha podido imprimir correctamente, intentalo más tarde.");
}
}
});
v.repaint();
}
miércoles, 25 de abril de 2012
Jugando un poco con fechas
Bueno en esta entrada voy a poner como pasar un String a Date y con ese formato intentar hacer sumas de días, meses, o cualquier otro tipo de operación.
Ahí va el código:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.swing.JOptionPane;
public class TestFechas {
//VARIABLES
private static Date fecha_DATE;
private static String fecha_STRING;
public static void main(String[] args) {
/* STRING QUE EXTRAEMOS DE UN TXT, BD O CUALQUIERA OTRA FUENTE
EN ESTE CASO LA PONGO MANUAL PARA SER MAS DIRECTO*/
fecha_STRING = "2011-02-28 01:50:52";
/*ESTABLECER FORMATO AÑO-MES-DIA HORA:MINUTOS:SEGUNDOS (TAMBIEN SE PUEDE MILISEGUNDOS)*/
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try {
// PARSEO STRING A DATE
fecha_DATE = sdf.parse(fecha_STRING);
} catch (ParseException e) {
System.out.println("Se ha producido un error de parseo");
}
//MOSTRAR STRING INICIAL
System.out.println("Fecha String: \t\t\t" + fecha_STRING + "\n");
//MOSTRAR TRAS PARSEO A DATE
System.out.println("Date: \t\t\t\t\t" + fecha_DATE + "\n");
//INSTANCIA DE CALENDARIO
Calendar c = Calendar.getInstance();
//ESTABLECEMOS LA FECHA DEL CALENDARIO CON EL DATE GENERADO ANTERIORMENTE
c.setTime(fecha_DATE);
/*** OPERACIONES QUE PODEMOS HACER CON CALENDARIO
PODEMOS SUMAR, RESTAR DIAS, MESES, AÑOS...
PODEMOS COMPARAR SI ES ANTERIOR, RECIENTE, ETC..
// SUMAMOS 1 DIA AL CALENDARIO
c.add(Calendar.DATE, 1);
// CONVERTIMOS CALENDARIO A DATE
fecha_DATE = c.getTime();
//MOSTRAMOS DATE FINAL
System.out.println("Date Anterior con 1 día sumado: \t" + fecha_DATE);
}
viernes, 13 de abril de 2012
Nuevo proyecto terminado. http://raquelruizfotografia.x90x.net/
Ya está terminada la página web que empecé a mi hermana, http://raquelruizfotografia.x90x.net/
Espero que le vaya bien en todo lo que se proponga ;)
Espero que le vaya bien en todo lo que se proponga ;)
jueves, 22 de marzo de 2012
String a Date (Fecha) en Java
Buenas a tod@s!
Con esta entrada
os quiero enseñar como se puede paar de String a date (fecha). ¿Para
qué lo podemos necesitar? El ejemplo que más se me viene a la
cabeza y por el cual tuve que investigar y por lo tanto puede que
vosotros también es cuando cogía datos de tipo datetime o
smalldatetime en sql server y lo recogía como string en java y luego
quería tratar con él como si fuera de formato fecha.
Normalmente
cualquier SGBD tendra un tipo de datos datetime, date o
smalldatetime.
El tipo datetime
suele ser así: "12/08/2012
12:51:12" si esta almacenado en formato local español.
Bueno
en mi programa ejemplo voy a aplicarlo directamente sobre un String,
pero como ya he dicho antes lo cogeríamos por ejemplo de una Base de
Datos y lo almacenaríamos como string, con lo cual es lo mismo.
El
código sería el siguiente:
import
java.text.DateFormat;
import
java.text.ParseException;
import
java.text.SimpleDateFormat;
import
java.util.Date;
import
java.util.Locale;
public
class principal {
public
static void main(String[] args) {
String
fecha = "12/08/2012 12:51:12";
Date
d = null;
/*
FORMATOS EN EL CUAL QUEREMOS LA FECHA EN
EN ESTE CASO DIA / MES / AÑO */
SimpleDateFormat
sdf = new SimpleDateFormat("dd/MM/yyyy",
Locale.ENGLISH);
try
{
//parseamos
string a tipo date
d
= sdf.parse(fecha);
}
catch (ParseException e) {
e.printStackTrace();
}
//ALGUNOS
TIPOS DE FORMATOS
DateFormat
dfDateShort = DateFormat.getDateInstance(DateFormat.SHORT);
System.out.println(dfDateShort.format(d));
//FORMATO
MEDIO
DateFormat
dfDateMedium = DateFormat.getDateInstance(DateFormat.MEDIUM);
System.out.println(dfDateMedium.format(d));
//FORMATO
NORMAL
DateFormat
dfDefault = DateFormat.getInstance();
System.out.println(dfDefault.format(d));
}
}
Ese
es el pequeño código... Hay muchos más formatos, para verlos todos
solamente necesitaremos por DateFormat.#Estilo_que_queramos, ya sea
Long, milisegundos, decadas, short...
Espero
que os haya servido de ayuda y cualquier duda o comentario nada más
tenéis que postearlo e intentaré ayudaros.
¡Un
saludo!
domingo, 18 de marzo de 2012
Un poco de JSplitPane y JScrollPane
La misma implementación que hice en la entra anterior, pero en vez de 3 JInternalFrame he usado 3 paneles (JPanel) con Scroll y Split.
public class VentanaPrincipal extends JFrame{ public VentanaPrincipal(){ { this.setTitle("Ventana Principal"); Container contenido = this.getContentPane(); crearJToolBar(); contenido.add(barraJTool, BorderLayout.NORTH); //CREAR PANELES PanelIzquierdo pi = new PanelIzquierdo(); pi.setBackground(Color.WHITE); PanelCentral pc= new PanelCentral(); pc.setBackground(Color.LIGHT_GRAY); PanelSuperior ps = new PanelSuperior(pc); ps.setBackground(Color.LIGHT_GRAY); scrollPI = new JScrollPane(); scrollPI.getViewport().add(pi, null); scrollPS = new JScrollPane(); scrollPS.getViewport().add(ps, null); Dimension d= new Dimension(800, 150); scrollPS.setMinimumSize(d); scrollPC = new JScrollPane(); scrollPC.getViewport().add(pc, null); jSP_1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT,scrollPS,scrollPC); jSP_2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,scrollPI,jSP_1); jSP_1.setOneTouchExpandable(true); jSP_2.setOneTouchExpandable(true); } }
Espero que les haya servido de ayuda y para lo que sea dejen un comentario.
Un saludo.
viernes, 16 de marzo de 2012
Escritorio con 3 ventanas internas dinámicas
Bueno te cuento...
VentanaPrincipal es JFRAME es la ventana principal.
En la ventana principal se alojan 3 JInternalFrames, Izquierdo, Superior y central.
Ahí va el código:
VENTANA PRINCIPAL (JFRAME): [CODE]public class VentanaPrincipal extends JFrame { private VentanaPrincipal vp; private PanelCentral pc; private PanelSuperior ps; private PanelIzquierdo pi; public VentanaPrincipal(){ this.setLayout(null); this.setTitle("VENTANA PRINCIPAL"); this.setResizable(true); this.setBounds(0, 0, 1024, 768); this.setLocationRelativeTo(null); vp=this; /******** PANEL CENTRAL *******************/ pc = new PanelCentral(); /******** PANEL SUPERIOR *******************/ ps = new PanelSuperior(this, pc); /******** PANEL IZQUIERDO *******************/ pi = new PanelIzquierdo(this,ps,pc); ps.setPanelIzquierdo(pi); /******** AÑADIR A LA VENTANA *******************/ add(pi); add(pc); add(ps); /******** ESCUCHADOR CUANDO CAMBIAMOS TAMAÑO DE VENTANA PRINCIPAL *******************/ this.addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { pi.setBounds(0, 30, 200, vp.getHeight()-72); pc.setBounds(pi.getWidth(),ps.getHeight()+30,vp.getWidth()-pi.getWidth()-18,vp.getHeight()-ps.getHeight()-72); ps.setBounds(pi.getWidth(),30,vp.getWidth()-pi.getWidth()-18,vp.getHeight()-pc.getHeight()-70); } }); } public static String getFechaActual() { Date ahora = new Date(); SimpleDateFormat formateador = new SimpleDateFormat("dd-MM-yyyy"); return formateador.format(ahora); } public static String getHoraActual() { Date ahora = new Date(); SimpleDateFormat formateador = new SimpleDateFormat("hh:mm:ss"); return formateador.format(ahora); } }[/CODE] PANEL CENTRAL: [CODE]public class PanelCentral extends JInternalFrame { private int x, y; private PanelCentral pc; private JScrollPane scrollPane; public PanelCentral(){ pc=this; this.setLayout(null); this.setTitle(null); this.setVisible(true); this.setClosable(false); this.setMaximizable(false); this.setResizable(false); } }[/CODE] PANEL SUPERIOR [CODE] public class PanelSuperior extends JInternalFrame implements ComponentListener { private PanelIzquierdo vpi; private VentanaPrincipal vvp; private PanelSuperior vps; private PanelCentral vpc; public PanelSuperior(VentanaPrincipal vp, PanelCentral vc){ vps=this; vvp=vp; vpc=vc; this.setLayout(null); this.setTitle(null); this.setVisible(true); this.setClosable(false); this.setMaximizable(false); this.setResizable(true); this.addComponentListener(this); this.addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { vpc.setBounds(vpi.getWidth(),vps.getHeight()+30,vvp.getWidth()-vpi.getWidth()-18,vvp.getHeight()- vps.getHeight()-72); } }); } public void setPanelIzquierdo(PanelIzquierdo pi){ this.vpi=pi; } @Override public void componentHidden(ComponentEvent e) { // TODO Auto-generated method stub } @Override public void componentMoved(ComponentEvent e) { vps.reshape(vpi.getWidth(), 30,vvp.getWidth()-vpi.getWidth()-18,vvp.getHeight()-vpc.getHeight()-70); } @Override public void componentResized(ComponentEvent e) { // TODO Auto-generated method stub } @Override public void componentShown(ComponentEvent e) { // TODO Auto-generated method stub } } [/CODE] PANEL IZQUIERDO [CODE]public class PanelIzquierdo extends JInternalFrame implements ComponentListener , MouseListener{ private PanelIzquierdo pi; private VentanaPrincipal vvp; private PanelSuperior vps; private PanelCentral vpc; private JTree tree; public PanelIzquierdo(VentanaPrincipal vp, PanelSuperior vs, PanelCentral vc){ //this.setLayout(null); this.setBounds(0,30,200,768); this.setVisible(true); this.setClosable(false); this.setMaximizable(false); this.setResizable(true); this.setTitle("Navegador"); pi=this; vvp=vp; vps=vs; vpc=vc; this.addComponentListener(this); this.addMouseListener(this); crearJTREE(); this.addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { vpc.setBounds(pi.getWidth(),260,vvp.getWidth()-pi.getWidth()-18,vvp.getHeight()-302); vps.setBounds(pi.getWidth(),30,vvp.getWidth()-pi.getWidth()-18,vvp.getHeight()-vpc.getHeight()-70); tree.setBounds(0, 0, pi.getWidth(), pi.getHeight()); } }); } @Override public void componentHidden(ComponentEvent e) { // TODO Auto-generated method stub } @Override public void componentMoved(ComponentEvent e) { pi.reshape(0, 30, 200, vvp.getHeight()-72); } @Override public void componentResized(ComponentEvent e) { // TODO Auto-generated method stub } @Override public void componentShown(ComponentEvent e) { // TODO Auto-generated method stub } public void crearJTREE(){ DefaultMutableTreeNode Sistema = new DefaultMutableTreeNode("Sistema"); DefaultMutableTreeNode hijos = new DefaultMutableTreeNode("hijos"); DefaultTreeModel modelo = new DefaultTreeModel(Sistema); tree = new JTree(modelo); tree.setBounds(0, 0, pi.getWidth(), pi.getHeight()); DefaultMutableTreeNode Medicos = new DefaultMutableTreeNode("Medicos"); DefaultMutableTreeNode Otros = new DefaultMutableTreeNode("Otros"); DefaultMutableTreeNode Altas=new DefaultMutableTreeNode("Altas"); DefaultMutableTreeNode Bajas=new DefaultMutableTreeNode("Bajas"); DefaultMutableTreeNode Quirofano = new DefaultMutableTreeNode("Quirofano"); DefaultMutableTreeNode Otros2=new DefaultMutableTreeNode("Otros 2"); modelo.insertNodeInto(Medicos,Sistema,0); modelo.insertNodeInto(Otros, Sistema, 1); modelo.insertNodeInto(Otros2, Sistema, 2); modelo.insertNodeInto(Altas, Medicos, 0); modelo.insertNodeInto(Bajas, Medicos, 1); modelo.insertNodeInto(Quirofano, Medicos, 2); add(tree); } @Override public void mouseClicked(MouseEvent e) { } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } }[/CODE]
Bueno llamariamos desde main a VentanaPrincipal.
La estructura queda así:
Un saludo.
jueves, 8 de marzo de 2012
INSTALAR ECLIPSE Y MI PRIMER PROGRAMA
Para empezar en el mundo de Java lo primero que debemos de instalar es eclipse, para poder escribir y probar el código que escribamos.
Para ello tenemos que ir a la página oficial de Eclipse, es totalmente gratuito y la verdad
es que no va nada mal.
Nos descargamos la versión que esté en .zip y una vez descargada lo único que tenemos quehacer es descomprimirla donde nosotros queramos y ya la tenemos totalmente funcional.
La primera vez que ejectuamos eclipse nos va a preguntar cual va a ser nuestro espacio de
trabajo por defecto (workspace), que, por defecto es C:/Users/Workspace.
Podemos decirle otra ruta, o dejar esa, y si queremos que no lo vuelva a preguntar más
tan solo tenemos que desactivar la casilla que viene más abajo.
Una vez dentro de eclipse, se puede ver que tenemos el Navegador de proyectos a la izquierdal os distintos menús arriba y a la derecha tenemos las clases que vamos usando (yo siempre lo quito) y arriba a la derecha nos saldrá en que lenguaje o plataforma estamos trabajando actualmente (Java, JavaEE, JSP, Android, etc...)
ABRIENDO UN NUEVO PROYECTO.
Para abrir un nuevo proyecto tenemos que ir a Archivo / Nuevo / Java proyect --
File / New / Proyecto Java
Le ponemos el Nombre HolaMundo al proyecto y luego a terminar, Finish.
Creando nuestro primer proyecto. |
ver que tenemos dos carpetas
SRC- Source, donde tendremos todos los paquetes, clases y elementos o archivos indispensables
para poder funcionar nuestro proyect.
JRE SYSTEM LIBRARY - Librerias jar por defecto para usar en nuestro proyecto.
CREANDO NUESTRA PRIMERA CLASE.
Ahora vamos a escribir nuestro primer código, pero va a ser solamente mostrar por consola
el típico primer programa que usamos todos los informáticos o cuando probamos nuestro
primer programa. Es sencillo pero sirve para ver si funciona.
Nos vamos a SRC, le hacemos click derecho y nueva clase. Vamos a crear la clase Principal
como main y en el paquete principal.
Para ello lo indicamos como en la siguiente imagen
Primera configuración de nuestro proyecto. |
Ahora hacemos doble click sobre nuestra recién creada clase Principal (Main). Doble click.
Podemos ver que nos crea el encabezado y el constructor como main con un Array de String
como argumento del mismo.
Los comentarios generados se pueden borrar.
Ahora para escribir Hola Mundo tan solo tendremos que escribir entre las llaves del constructor
(public static void main(String[] args)) un System.out.println("Hola Mundo");
Pulsamos sobre el botón Play y seleccionamos Aplicacion Java si nos lo preguntase.
Ya ejecutamos el programa y nos saldrá un mensaje en la Consola de Hola Mundo.
Si queremos mostrarlo como una ventana emergente escribiremos en vez de System.out.println lo siguiente JOptionPane.showMessageDialog(null, "Hola Mundo");
Hola Mundo en |
Recordad que cada vez que ejectemos el programa tendremos que darle al botón Parar
Rectangulo rojo y luego al doble aspa. Si no lo hacemos cuando ejecutemos el programa o
varios programas 40 veces por ejemplo, tendremos en ejecución 40 programas, lo que puede
hacer casi seguro ralentizarnos incluso dejarnos el pc colgado.
EXPORTAR NUESTRO PROYECTO A UN EJECUTABLE JAR
Por último si queremos que nuestro proyecto se pueda ejecutar en cualquier otra máquina
que disponga de la máquina virtual de java instalada tendremos que hacer lo siguiente:
File / Export / Java /Runnable JAR File
Le damos a siguiente y luego indicamos el nombre del proyecto (En nuestro caso HolaMundo).
Luego la ruta donde vamos a generar nuestro fichero .jar.
Exportar proyecto a un archivo JAR |
Ya tendremos en la ruta dicha el archivo .jar, podremos ejecutarlo como si de un programa
normal se tratase (Doble click).
¡¡CUIDADO!!
Si estamos en eclipse bajo cualquier distro de Linux (Ubuntu, Fedora, OpenSuse...) nos
creará un archivo .jar igualmente como en Windows o Mac, pero luego tendremos que aplicarle
los permisos de ejecución desde consola o desde las propiedades del archivo.
DESDE LAS PROPIEDADES DEL ARCHIVO .JAR.
Simplemente hacemos click derecho sobre el fichero .jar y luego en propiedades. Le damos a
la pestaña permisos y activamos los permisos de ejecución.
EN CONSOLA
Nos vamos a la ruta donde está el fichero .jar y luego simplemente le añadimos los permisos de ejecución:
$ chmod +x fichero.jar
Si no estamos en la ruta como siempre
$ chmod +x Ruta_del_fichero/fichero.jar
Si queremos darle todos los permisos es simplemente poner chmod 777, ¡ojo con esto!
Espero que os haya servido de ayuda y si tenéis cualquier duda escribirme cualquier duda
o comentario.
Un saludo.
Suscribirse a:
Entradas (Atom)