Libreria requerida para ejecutar reportes compilados de JasperReport

Con la nueva versión de JasperReport studio me vi obligado a buscar las librerías que requiere para la ejecución de los reportes copilados (reporte.japer),  desde la wiki de JasperReport encontré una información que me sirvió de referencia aunque después tuve que encontrar a prueba y error las que realmente necesite para la ejecución de los reportes, a continuación listo la librerías necesarias:

Asta aquí tenemos  las librerías necesarias para poder ejecutar el reporte y visualizar en pantalla o impresora,  si queremos que el reporte envié la salida de visualización a un archivo se debe agregar las siguientes librerías:

 

Con esto ya podemos visualizar los reportes de JasperReport en aplicaciones java. si tienen algún comentario no duden en compartirlo.

Anuncios

OpenScad hola mundo

OpenSCAD es una aplicación opensource para crear objetos sólidos CAD. es compilador 3D basado en un lenguaje de descripción textual. Un documento de OpenSCAD especifica primitivas geométricas y define como son modificadas y manipuladas para reproducir un modelo 3D. OpenSCAD esta disponible tanto para GNU/Linux, MS Windows y Apple OS X.

Cuando ejecuta openscad la primer pantalla que mostrara si no se activa el checkbox “no mostrar de nuevo”

pantallaopenscad1

La ventana de trabajo o ventana principal, al lado izquierdo cuenta con editor de texto donde ingresa las sentencias para las gráficos solidos, al lado superior derecho muestra las figuras solidas, al lado inferior derecho muestra los resultados de las compilación de las sentencias que se digitaron en el editor de texto de el lado izquierdo.

openscadmain

Openscad funciona como un lenguaje de programación interpretado, donde podrá utilizar variables, funciones, palabras claves, modulación, etc. las sentencias principales se encuentran en la pagina CheatSheet. La finalización de sentencia debe estar especificado por un punto y como (;).  ejemplo

creare un cubo hola mundo siguiendo las sintaxis de la sentencia cube

holamundocube

x=15;
y=15;
z=15;
cube([x,y,z]);

como se puede ver estoy utilizando variables y cada finalización de sentencias se finaliza con punto y como(;), para visualizar en imagen lo digitado en el editor de texto debe presionar la tecla de función F5.  También podría poner contantes en cube lo que digitalizaría en ves de las variables serian numero por ejemplo:

 cube([15,15,15]);

hay varia variantes para cada sentencia en openscad y se puede ver en la pagina CheatSheet.

Asta aquí el hola mundo de openscad próximamente iré haciendo nuevas entradas de las bondades que ofrece openscad

 

Selecionar fila de un Jtable con el boton derecho del mouse a la ves que se llama al menu contextual en java

Tenia una aplicación donde seleccionaba las filas con el botón izquierdo y llamaba al menú contextual con el botón derecho, pero me dije eso no es muy amigable para el usuario, entonces procedí a buscar información y me encontré que en java también se puede seleccionar con el boton derecho al mismo tiempo que se llama al menu contextual.

public class PnlTabla extends javax.swing.JPanel{
private JTable tblConsulta
private PopConsulta popConsulta 
public PnlTabla(){
 initpnlTabla()
}
private void initpnlTabla(){
    tblConsulta = new JTable(); 
    popConsulta = new PopConsulta();
    tblConsulta.addMouseListener(new LtrPputable());
    add(tblConsulta);
}

 class LtrPputable extends  MouseAdapter {
       @Override
       public void mousePressed(java.awt.event.MouseEvent evt) {
         showPopMenu(evt);
        }
        @Override
        public void mouseReleased(java.awt.event.MouseEvent evt) {
          showPopMenu(evt);
        }
        private void showPopMenu(java.awt.event.MouseEvent evt){
        if(evt.isPopupTrigger()){
           int punto = tblConsulta.rowAtPoint(evtMouse.getPoint());
        if (punto >= 0 && punto < tblConsulta.getRowCount())
            {tblConsulta.setRowSelectionInterval(punto, punto);}
            popConsulta.show(tblConsulta, evt.getX(),evt.getY());
       }
 }
 
   class PopConsulta extends JPopupMenu{
        private    JMenuItem             itm1,itm2,itm3;

        public PopupConsulta(){
            initPopu();
        } 

       private void initPopu(){
        itm1          =new JMenuItem("Primero");
        itm2         =new JMenuItem("Segundo");
        itm3          =new JMenuItem("Tercero");
 add(itm1);
 add(itm2);
 add(itm3);
 }
 }            
}

 

Este es el código general depende de ustedes hacerlo mas fino y mas llamativo, como veran es un JPanel el cual podran agregar a un contenedor como un Jframe…..

 

Tablas de colores , Hexadecimal y codigo RGB

Muchas veces necesitamos saber el código de un color y tenemos que recurrir a prueba y error aquí les dejo un tabla de colores que mea servido mucho.

Nombre
del color

Color
Hexadecimal

Color RGB

Color

IndianRed #CD5C5C 205,92,92
LightCoral #F08080 240,128,128
Salmon #FA8072 250,128,114
DarkSalmon #E9967A 233,150,122
LightSalmon #FFA07A 255,160,122
Crimson #DC143C 220,20,60
Red #FF0000 255,0,0
FireBrick #B22222 178,34,34
DarkRed #8B0000 139,0,0
Pink #FFC0CB 255,192,203
LightPink #FFB6C1 255,182,193
HotPink #FF69B4 255,105,180
DeepPink #FF1493 255,20,147
MediumVioletRed #C71585 199,21,133
PaleVioletRed #DB7093 219,112,147
LightSalmon #FFA07A 255,160,122
Coral #FF7F50 255,127,80
Tomato #FF6347 255,99,71
OrangeRed #FF4500 255,69,0
DarkOrange #FF8C00 255,140,0
Orange #FFA500 255,165,0
Gold #FFD700 255,215,0
Yellow #FFFF00 255,255,0
LightYellow #FFFFE0 255,255,224
LemonChiffon #FFFACD 255,250,205
LightGoldenrodYellow #FAFAD2 250,250,210
PapayaWhip #FFEFD5 255,239,213
Moccasin #FFE4B5 255,228,181
PeachPuff #FFDAB9 255,218,185
PaleGoldenrod #EEE8AA 238,232,170
Khaki #F0E68C 240,230,140
DarkKhaki #BDB76B 189,183,107
Lavender #E6E6FA 230,230,250
Thistle #D8BFD8 216,191,216
Plum #DDA0DD 221,160,221
Violet #EE82EE 238,130,238
Orchid #DA70D6 218,112,214
Fuchsia #FF00FF 255,0,255
Magenta #FF00FF 255,0,255
MediumOrchid #BA55D3 186,85,211
MediumPurple #9370DB 147,112,219
BlueViolet #8A2BE2 138,43,226
DarkViolet #9400D3 148,0,211
DarkOrchid #9932CC 153,50,204
DarkMagenta #8B008B 139,0,139
Purple #800080 128,0,128
Indigo #4B0082 75,0,130
SlateBlue #6A5ACD 106,90,205
DarkSlateBlue #483D8B 72,61,139
GreenYellow #ADFF2F 173,255,47
Chartreuse #7FFF00 127,255,0
LawnGreen #7CFC00 124,252,0
Lime #00FF00 0,255,0
LimeGreen #32CD32 50,205,50
PaleGreen #98FB98 152,251,152
LightGreen #90EE90 144,238,144
MediumSpringGreen #00FA9A 0,250,154
SpringGreen #00FF7F 0,255,127
MediumSeaGreen #3CB371 60,179,113
SeaGreen #2E8B57 46,139,87
ForestGreen #228B22 34,139,34
Green #008000 0,128,0
DarkGreen #006400 0,100,00
YellowGreen #9ACD32 154,205,50
OliveDrab #6B8E23 107,142,35
Olive #808000 128,128,0
DarkOliveGreen #556B2F
MediumAquamarine #66CDAA 102,205,170
DarkSeaGreen #8FBC8F 143,188,143
LightSeaGreen #20B2AA 32,178,170
DarkCyan #008B8B 0,139,139
Teal #008080 0,128,128
Aqua #00FFFF 0,255,255
Cyan #00FFFF 0,255,255
LightCyan #E0FFFF 224,255,255
PaleTurquoise #AFEEEE 175,238,238
Aquamarine #7FFFD4 127,255,212
Turquoise #40E0D0 64,224,208
MediumTurquoise #48D1CC 72,209,204
DarkTurquoise #00CED1 0,206,209
CadetBlue #5F9EA0 95,158,160
SteelBlue #4682B4 70,130,180
LightSteelBlue #B0C4DE 176,196,222
PowderBlue #B0E0E6 176,224,230
LightBlue #ADD8E6 173,216,230
SkyBlue #87CEEB 135,206,235
LightSkyBlue #87CEFA 135,206,250
DeepSkyBlue #00BFFF 0,191,255
DodgerBlue #1E90FF 30,144,255
CornflowerBlue #6495ED 100,149,237
MediumSlateBlue #7B68EE 123,104,238
RoyalBlue #4169E1 65,105,225
Blue #0000FF 0,0,255
MediumBlue #0000CD 0,0,205
DarkBlue #00008B 0,0,139
Navy #000080 0,0,128
MidnightBlue #191970 25,25,112
Cornsilk #FFF8DC 255,248,220
BlanchedAlmond #FFEBCD 255,235,205
Bisque #FFE4C4 255,228,196
NavajoWhite #FFDEAD 255,222,173
Wheat #F5DEB3 245,222,179
BurlyWood #DEB887 222,184,135
Tan #D2B48C 210,180,140
RosyBrown #BC8F8F 188,143,143
SandyBrown #F4A460 244,164,96
Goldenrod #DAA520 218,165,32
DarkGoldenrod #B8860B 184,134,11
Peru #CD853F 205,133,63
Chocolate #D2691E 210,105,30
SaddleBrown #8B4513 139,69,19
Sienna #A0522D 160,82,45
Brown #A52A2A 165,42,42
Maroon #800000 128,0,0
White #FFFFFF 255,255,255
Snow #FFFAFA 255,250,250
Honeydew #F0FFF0 240,255,240
MintCream #F5FFFA 245,255,250
Azure #F0FFFF 240,255,255
AliceBlue #F0F8FF 240,248,255
GhostWhite #F8F8FF 248,248,255
WhiteSmoke #F5F5F5 245,245,245
Seashell #FFF5EE 255,245,238
Beige #F5F5DC 245,245,220
OldLace #FDF5E6 253,245,230
FloralWhite #FFFAF0 255,250,240
Ivory #FFFFF0 255,255,240
AntiqueWhite #FAEBD7 250,235,215
Linen #FAF0E6 250,240,230
LavenderBlush #FFF0F5 255,240,245
MistyRose #FFE4E1 255,228,225
Gainsboro #DCDCDC 220,220,220
LightGrey #D3D3D3 211,211,211
Silver #C0C0C0 192,192,192
DarkGray #A9A9A9 169,169,169
Gray #808080 128,128,128
DimGray #696969 105,105,105
LightSlateGray #778899 119,136,153
SlateGray #708090 112,128,144
DarkSlateGray #2F4F4F 47,79,79
Black #000000 0,0,0

Crear una clase que identifique si es una letra en mayuscula o minuscula

En muchos login piden que unas que al menos un carácter sea en mayúscula y se me dio la curiosidad de como comprobar si un carácter era en mayúscula o en minúscula pero no encontré alguna clase en java que lo hiciera así que tuve que improvisar una.

esta clase tiene dos métodos uno para verificar si es minúscula y otro si es mayúscula, cada método devuelve un verdadero si es minúscula o mayúscula respectivamente. aquí dejo el codigo

public class CharIsloverIsupper {
private String cavecedario= “abcdefghijklmnñopqrstuvwxyz”;

public boolean isMinus(char caracter){
for(int i=0;i<cavecedario.length();i++){
if(cavecedario.charAt(i)==caracter)return true;
}
return false;
}
public boolean isMayus(char caracter){
for(int i=0;i<cavecedario.length();i++)
if(cavecedario.toUpperCase().charAt(i)==caracter)return true;
return false;
}

}

Crear una clase para barra de herramientas con Jtoolbar

Bueno les comento, el poder crear esta Barra de Herramientas,  me llevo muchos días de investigación, si es fácil agregar una Jtoolbar a cada formulario e irla armando con botón(JButon) en cada formulario. pero cuanto tiempo les llevara para una aplicación que lleva mas de 20 formularios.

Como verán esta barra de herramientas  hereda de javax.swing.JToolBar, dentro de ella definimos una clase interna que crea los botones, esta clase interna hereda de javax.swing.JButton.

Dentro del constructor de la barra de herramientas llamamos a un metodo(inibutton()), que se encarga de definir los botones que irán en la barra de herramientas.

Como verán utilizo la clase Action y AbstractAction, esto es para poder definir en el contenedor de la barra de herramientas las operaciones que aran cada boton cuando sean ejecutados.  si ustedes tiene varios formularios que guarda datos en  tablas diferentes de una base de datos la operación de agregar registro no puede se la misma, al igual la operación de guardar ya que cada formulario tendrá una tabla diferente.

a continuación el código de la clase, este solo se agrega a un contenedor, si utilizan netbeans solo lo seleccionan y lo arrastran al contenedor(Jframe, JDialogo….)

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.SwingConstants;

public class BarraHerramienta extends javax.swing.JToolBar{
public JButton cmdNewReg,cmdSaveReg,cmdCloseFrm,;
protected  Action atnNew,atnSave,atnClose;
public BarraHerramienta() {
super(“BarraHerramienta”);
inibutton();
add(cmdNewReg);
add(cmdSaveReg);
addSeparator();
add(cmdCloseFrm);
setRequestFocusEnabled(false);
setFocusable(false);
setFloatable(false);
setRollover(false);
}
private void inibutton(){
atnNew = new AbstractAction(“Nuevo”, new ImageIcon(getClass().getResource(“/imagenes/btooliconnew.png”))){
public void actionPerformed(ActionEvent e) {
;
}
};
atnEdit = new AbstractAction(“Editar”, new ImageIcon(getClass().getResource(“/imagenes/btooliconedit.png”))){
public void actionPerformed(ActionEvent e) {
;
}
};
atnSave = new AbstractAction(“Guarda”, new ImageIcon(getClass().getResource(“/imagenes/btooliconsave.png”))){
public void actionPerformed(ActionEvent e) {
;
}
};
atnClose = new AbstractAction(“Cerrar”, new ImageIcon(getClass().getResource(“/imagenes/btooliconclose.png”))){
public void actionPerformed(ActionEvent e) {
;
}
};

cmdNewReg= new CmdBar(atnNew, “Agrega un Registro”);
cmdSaveReg= new CmdBar(atnSave,”Guarda la modificaciones del formulario”);
……

cmdCloseFrm= new CmdBar(atnClose,”Cierra el formulario”);
}
public void opCmd(ActionEvent atn){
//      String nombre= ((JButton) atn.getSource()).getText()
System.out.println(((JButton) atn.getSource()).getName());
}

class CmdBar extends JButton
{
Dimension d = new Dimension(60,55);
public CmdBar(Action atnCmd, String cToolTip) {
super((Icon) atnCmd.getValue(Action.SMALL_ICON));
setName((String) atnCmd.getValue(Action.NAME));
setPreferredSize(d);
…….

setToolTipText(cToolTip);
addActionListener(atnCmd);
setRequestFocusEnabled(false);

}

}

}

Referencias

http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos

http://guniu.mx/progravanzada/unidad1.2.html

http://javapiola.blogspot.com/2009/11/como-utiliza-jtoolbar-en-java.html

Crear una clase para modificar archivos de propiedades

La clase Properties representa un conjunto persistente de propiedades. Las propiedades se pueden guardar en un stream o cargado de un stream . Cada clave y su valor correspondiente en la lista de propiedades es una cadena.

.properties es una extensión predeterminada para archivos de propiedad utilizados principalmente en las tecnologías relacionadas con Java para almacenar los parámetros configurables de una aplicación.

Al ser guardado la propiedad se almacena  de la siguiente manera:  key=value, key = value, key:value, y key value

a continuación la clase para leer y escribir en el archivo de propiedad

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Properties;

public class AdminFileConf {
String cNameFileConf=”archivo.conf”; // se cambio la extension del archivo de .properties a .conf
public String readFileConf(String cNamePropiedad){
String cValuePropiedad=””;
Properties propiedad = new Properties();
try {
propiedad.load(new FileInputStream(cNameFileConf));
cValuePropiedad=propiedad.getProperty(cNamePropiedad);
}catch(FileNotFoundException e){
System.out.println(e.getMessage());
}catch(Exception e){
System.out.println(e.getMessage());
}
return cValuePropiedad.trim();
}

public boolean writeFileConf(String cNamePropiedad,String cValuePropiedad){
FileOutputStream fileConf=null;
BufferedInputStream bufferedFile=null;
Properties propiedad = new Properties();
try{
bufferedFile=new BufferedInputStream(new FileInputStream(cNameFileConf));
propiedad.load(bufferedFile);
fileConf = new FileOutputStream(cNameFileConf);
propiedad.setProperty(cNamePropiedad, cValuePropiedad);
propiedad.store(fileConf,null);
}catch(Exception e){
System.out.println(e.getMessage());
}finally{
try {
bufferedFile.close();
fileConf.close();
}catch(Exception e){
System.out.println(e.getMessage());
}

}
return true;
}

}