20/2/07

Mini tutorial de action en Java

Un estilo al TAction de Delphi 4 pero años despues y teniendo que escribir código. En fin es lo que hay.

http://java.sun.com/docs/books/tutorial/uiswing/misc/action.html

29/1/07

Creación de pdfs desde java

Utilizar iText. Hay un libro y todo "iText in action". Permite además con los mismos comandos crear Htmls y rtfs.

11/1/07

Serialización de objectos en java


package pruebasserializacion;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Calendar;

/**
*
* @author ivancruz
*/
class Elemento implements Serializable{
int cod;
String nomb;
Calendar fNac;
public Elemento(int cod, String nomb, Calendar fNac){
this.cod = cod;
this.nomb = nomb;
this.fNac = fNac;
}
public String toString(){
return Integer.toString(cod) + "//" + nomb + DateFormat.getDateInstance().format(fNac.getTime());
}
}

public class Main {
final static String NOMBFICH = "d:\\borrame.serializacion";
public static void main(String[] args) throws IOException, ClassNotFoundException {
Main m = new Main();
ArrayList escribir = new ArrayList();
escribir.add(new Elemento(1,"Uno",Calendar.getInstance()));
escribir.add(new Elemento(2,"Dos",Calendar.getInstance()));

FileOutputStream fos;
fos = new FileOutputStream(Main.NOMBFICH);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(escribir);

//ArrayList leer;
FileInputStream fis = new FileInputStream(Main.NOMBFICH);
ObjectInputStream ois = new ObjectInputStream(fis);
ArrayList leer = (ArrayList)ois.readObject();
for(Elemento e:leer){
System.out.println(e);
}
}
}

13/11/06

Visita Simo 2006

www.solmicro.com: ERP ampliable y configurable. Te dan el código fuente y generadores de código.

26/10/06

BENEDETTI

"POEMAS REVELADOS" (Libro en casa de Dunia)
  • "NO TE SALVES"
    • "NO QUIERAS CON DESGANA"
  • "DEFENSA DE LA ALEGRIA"
    • Casi completo
  • "LA TREGUA"
    • Trabajar de camarero
  • "EL OLVIDO"
    • "EL OLVIDO NO ES VICTORIA"
    • "NO OLVIDA EL QUE FINGE OLVIDO,
      SINO EL QUE PUEDE OLVIDAR"

13/8/06

HTML Base

Tabla con 3 zonas e imágenes de fondo.

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>TODO supply a title</title>
</head>
<body style="margin:0px;padding:0px">

<table style="valign:centered;text-align:center;width:100%;height:100%;border-spacing:0px">
<tr style="height:20%">
<td style="valign:centered;text-align:center;background-image:url('borrame.jpg')">

<h1>Encabezado</h1>
</td>
</tr>
<tr style="height:65%">

<td style="valign:centered;text-align:center;background-image:url('borrame.jpg')">
<p>cuerpo</p>
</td>

</tr>
<tr style="height:15%">
<td style="valign:centered;text-align:center;background-image:url('borrame.jpg')">

<p>pie</p>
</td>
</tr>
</table>
</body>

</html>

3/8/06

¿Qué debe incluir un caso de uso?

Actor Principal
Precondiciones
Postcondiciones
Flujo Básico
Flujos Alternativos
Requisitos especiales
Frecuencia

Web sobre el tema "usecases.org"

23/6/06

Java: Leer una url



try{
java.net.URL url = new java.net.URL("http","www.ya.com",80,"");
java.io.InputStream is = url.openStream();
System.out.println("[ya.com]");
int c;
while ((c = is.read()) != -1){
System.out.write(c);
}
System.out.println("[ya.com fin]");
}catch(Exception e){
e.printStackTrace();
}

5/6/06

Interesante historia acerca de pasar de Windows a Linux

La escribio usuario de barrapunto conocido como "year of the dragon". Es una ida de olla interesante y amena. La conclusión es que utilices programas compatibles Windows y Linux (normalmente software libre) para ir pasando poco a poco hasta que windows no te haga falta.
(para verla pulsar sobre el título del artículo)

Mostrar tablas de un esquema de Oracle


Select * from cat

Nota: Información de catálogo.

25/4/06

Truquillos chorras

Truquillos chorras que te han hecho falta de Operador de Ordenador en Familia
Copiar ficheros
xcopy /e /c /h /r /k /z *.* dest\
Actualizar la hora del equipo a la del dominio
runas /user:familia\Administrador "net time /Domain:Familia /set"
Dir mostrando ocultos
dir /A
Instalar el redistribuible del .net
dotnetfx.exe /q /c:"install.exe /q"

30/3/06

ComboBox en .Net

  
this.cbMunicipio.DropDownStyle = ComboBoxStyle.DropDownList;
this.cbMunicipio.DataSource = Program.dm.ProvinciaMunicipioBindingSource; //BindingSource a mostrar
this.cbMunicipio.DisplayMember = Program.dm.dsOracle.MUNICIPIO.NOMBREColumn.ColumnName; // Campo nombre
this.cbMunicipio.ValueMember = Program.dm.dsOracle.MUNICIPIO.CODIGOColumn.ColumnName; // Campo valor
this.cbMunicipio.DataBindings.Add( // enlace con el campo donde se guarda el valor
new Binding("SelectedValue", // La propiedad de SelectedValue ( no value)
Program.dm.OrganoBindingSource, // Bindingsource de la tabla en la que grabamos el valor
Program.dm.dsOracle.ORGANO.CODIGO_MUNICIPIOColumn.ColumnName // nombre del campo en el que guardamos el valor
));

Conexión con Bd Access

Los 2 parámetros imprescindibles son:
  • Provider=Microsoft.Jet.OLEDB.4.0;

  • Data Source='"+d.FileName+"'"

Ejemplo completo:
System.Data.OleDb.OleDbConnection con = new OleDbConnection("Provider='Microsoft.JET.OLEDB.4.0';Data source = 'o:\datos\prueba1.mdb'");


Con clave:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:Database Password=MyDbPassword;

Leer autonumricos de Access y Sql Server(Identity)


     OleDbConnection con = new OleDbConnection(CadCon);
     OleDbCommand cmd = OleDbCommand("SELECT @@IDENTITY", con);
     int clave = (int) cmdIdentidad.ExecuteScalar();

Ejemplo de Semáforos con C#

Mutex m = new Mutex();
m.WaitOne();
if (instancia == null){
     instancia = new ClaseUnica();
}
m.Close();

27/3/06

Cadenas en C#

Cadenas en C#

Para que no interprete los caracteres de “\” en una cadena y tener que poner “\\” en las rutas de directorio se puede poner una arroba “@” delante de la cadena y listo.
Ejemplo:
Ruta = “c:\\path\\fichero”
Ruta = @”c:\path\fichero”

Si queremos tener una cadena en la que se valla construyendo una más larga debemos usar el StringBuilder por cuestiones de rendimiento.

22/2/06

Formulario C# con creación de controles a pelo



using System;
using System.Drawing;
using System.Windows.Forms;

namespace pruebas1
{
///
/// Description of EdicionConControles.
///

public partial class EdicionConControles
{
//Controles a los que es necesario acceder desde código del formulario
private TextBox tbAlias;
private TextBox tbNombre;

public void InicializarControles(){
// Panel Datos
FlowLayoutPanel flpDatos = new FlowLayoutPanel();
flpDatos.Parent = this;
flpDatos.Dock = DockStyle.Fill;
flpDatos.BackColor = Color.Cyan; // para ver donde acaba

// Alias
Panel panelAlias = new Panel();
panelAlias.Parent = flpDatos;
panelAlias.BackColor = Color.AliceBlue;

Label labelAlias = new Label();
labelAlias.Parent = panelAlias;
labelAlias.Text = "Alias";
labelAlias.Top = 2;
labelAlias.Left = 2;
labelAlias.Height = 12;

/* definido fuera*/
tbAlias = new TextBox();
tbAlias.Parent = panelAlias;
tbAlias.Left = 2;
tbAlias.Top = 2 + labelAlias.Height + 2;

panelAlias.Height = 2 * 3 + labelAlias.Height + tbAlias.Height;
panelAlias.Width = 2 * 2 + tbAlias.Width;

//nombre
Panel panelNombre = new Panel();
panelNombre.Parent = flpDatos;
panelNombre.BackColor = Color.AliceBlue;

Label labelNombre = new Label();
labelNombre.Parent = panelNombre;
labelNombre.Text = "Nombre";
labelNombre.Top = 2;
labelNombre.Left = 2;
labelNombre.Height = 12;

//Definido fuera
tbNombre = new TextBox();
tbNombre.Parent = panelNombre;
tbNombre.Left = 2;
tbNombre.Top = 2 + labelNombre.Height + 2;

panelNombre.Height = 2 * 3 + labelNombre.Height + tbNombre.Height;
panelNombre.Width = 2 * 2 + tbNombre.Width;

// Panel Botones
FlowLayoutPanel flpBotones = new FlowLayoutPanel();
flpBotones.Parent = this;
flpBotones.Dock = DockStyle.Bottom;
flpBotones.BackColor = Color.Red;// para ver donde acaba
flpBotones.Height = 27; //23 del boton estándar más 4

// botón grabar
Button bGrabar = new Button();
bGrabar.Parent = flpBotones;
bGrabar.Click += new EventHandler(bGrabarClick);
//void bGrabarClick(object sender, System.EventArgs e)
bGrabar.UseVisualStyleBackColor = true;
bGrabar.Text = "Grabar";

// botón salir
Button bSalir = new Button();
bSalir.Parent = flpBotones;
bSalir.Click += new EventHandler(bSalirClick);
//void bGrabarClick(object sender, System.EventArgs e)
bSalir.UseVisualStyleBackColor = true;
bSalir.Text = "Salir";
}

public EdicionConControles()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();

this.InicializarControles();
}

void bGrabarClick(object sender, System.EventArgs e)
{
MessageBox.Show("Botón de grabar");
}

void bSalirClick(object sender, System.EventArgs e)
{
MessageBox.Show("Botón de Salir");
}

}
}