JFrame con Imagen de Fondo


El día de ayer, revisando los proyectos de mis alumnos de Segundo Ciclo, me hicieron la pregunta ¿cómo puedo colocar una imagen de fondo en un JFrame? Y para ser sinceros era la primera vez que me enfrentaba a una tarea como esa, luego de una pequeña consulta en Internet encontré un código que me ayudó a responder la pregunta y comparto con todos la solución que planteé a la pregunta. Dedicado a mis alumnos de Segundo Ciclo de Ingeniería en Sistemas Informáticos y computación de la UTPL

Lo primero que hice es crear un paquete en donde ubicaré las imagenes, ésto nos ayuda a no utilizar rutas absolutas, las mismas que traen complicaciones cuando no se respeta los directorios por defecto, mientras que si la imagen es parte de paquete es parte de la aplicación y es independiente de la instalación del programa.

Luego debemos crear un JPanel que contendrá la imagen, un campo de texto, un campo para password y un botón. Dentro del JPanel debemos re-escribir el método paintComponent en donde utilizando el método g.drawImage se dibuja la imagen. Para hacer referencia a la imagen que se encuentra dentro de un paquete lo hacemos con el método getResource, éste mismo método es utilizado para agregar una imagen al botón.

pnlfondo.png

Una vez hecho los trabajos con el JPanel, debemos empezar a trabajar con el JFrame, únicamente lo que corresponde hacer es crear un objeto del tipo JPanel (en mi caso la clase PnlFondo) y agregarlo al JFrame dentro del cual se ha definido con Layout el BorderLayout.

Finalmente comentarles que la fotografía de fondo muestra una construcción que se conoce como Ingapirca, es una construcción Incaica, en donde se desarrollaba las festividades al dios sol.

Si lo que necesitan es poner una imagen a un JDialog, revisen este post.

Pueden revisar el código en GitHub en el siguiente link.

Powered by ScribeFire.

About these ads

738 thoughts on “JFrame con Imagen de Fondo

  1. CRISTIAN HARO VINUEZA dijo:

    Muy interesante y educativa la pagina Jorge, lo felicito
    Soy estudiante de Informatica, modalidad a distancia.y tengo Una pregunta:
    Que tipo de imagenes se pueden agregar al JFrame?? y si puedo agregar imagenes a otro tipo de ventanas.
    gracias
    un Saludo.

  2. Hola Cristian,

    Que gusto que los estudiantes de la UTPL encuentren útil ésta página que es mantenida por algunos docentes de esa institución.
    Los tipos de imagenes que soporta la clase ImageIcon son GIF, JPEG y PNG, creo que son los tipos que Java soporta.

    Como te puedes dar cuenta utilizó un JPanel para dibujar la imagen y eso señala que todas las ventanas que puedan contener un JPanel pueden desplegar imágnes.

    Espero que mis respuestas sean útiles para ti.

    • loveli dijo:

      Hola buen dia!!!
      Tengo una pregunta como puedo abrir un documento de word y buscar un apalabra en el doumento, y la ancontrarla obtener el contenido de donde se encuentre la palabra

    • orlen dijo:

      Hola soy Orlen de Costa Rica.
      Es que llegue a este sitio por lo de las imagenes en los Paquetes. Pero yo lo estoy haciendo para aplicar una imagen con el skin de substance. pero no me reconoce el getClass. Quieria pedirle al profesor que si me podia facilitar el ejemplo de la imagenes.
      Gracias

    • diBM dijo:

      Hola a todos, quizás sea un poco tarde para escribir aquí porque veo que la mayoria de comentarios son del 2007, pero es que tengo una pregunta y es para mi proyecto final de carrera. Ya lo tengo terminado, pero en una ventana, donde aparecen los datos de los participantes en el proyecto, me gustaria poner una imagen.

      En el código tengo puesto esto:
      JDialog acercaDe = new JDialog();
      Container contenedor = acercaDe.getContentPane();
      contenedor.setLayout(new FlowLayout(FlowLayout.CENTER));
      JLabel imagen = new JLabel(new ImageIcon(“logo_uco.jpg”));
      contenedor.add(imagen);
      acercaDe.setTitle(“Acerca de…”);
      acercaDe.pack();
      acercaDe.setLocation(200,200);
      acercaDe.setVisible(true);

      Bien, cuando ejecuto la aplicación en NetBeans sí se visualiza la imagen, pero cuando lo hago en mi navegador a través de localhost NO. Y no sé porqué si tengo también las imágenes en el servidor. Utilizo el paquete AppServ. Si alguien me puede ayudar se lo agradecería enormemente.

      Saludos!!

      • Hola diBM,

        Me imagino que tú aplicación es un applet ¿es así?

        Si así fuere, te recomiendo que revises el nombre exacto de tú imagen comparándola con el nombre del archivo fíjate en temas como mayúsculas y minúsculas incluida la extensión. Recuerda que la imagen debe estar dentro de algún paquete de tú proyecto.

        Revísalo y me comentas

        Saludos desde Loja, Ecuador.

      • Alberto dijo:

        Hola,

        Si lees o escribes ficheros desde un applet, recuerda que éste debe tener una certificado digital, o algo así =)

    • RUBEN MARTINEZ dijo:

      buen dia jorge ESPERO Q TODAVIA ESTE DISPONIBLE ESTE BLOG….OYE TENGO UN PROBLEMA CON UN PROYECTO DE NETBEANS.. SE TRATA DE UNA BASE DE DATOS Q ALMACENE EL CODIGO, NOMBRE Y APELLIDOS DE PERSONAS Q EL MISMO USUARIO LE INSERTA… SI LOS ALMACENA Y LE DEJE UN ESPACIO PARA QUE LOS MUESTRE AL FINAL… MI PREGUNTA ES COMO PUEDO HACER PARA QUE AL PRESIONAR LA TECLA ENTER DE MI TECLADO SE BRINQUE DE UN ESPACIO A OTRO (DE EL ESPACIO DE NOMBRE AL ESPACIO DE APELLIDO POR EJEMPLO.) NECESITO QUE LA TECLA ENTER DE MI TECLADO ACTUE COMO LA TECLA TABULADOR…. COMO VES SE PODRA???? POR FAVOR Y GRACIAS

  3. Mandracke dijo:

    Amigos,tengo una q es mas corta y puedes montar varias imagenes superpuestas dependiendo de la imágenes q quieras usar, esto solo es:

    ((JPanel)getContentPane()).setOpaque(false);
    ImageIcon img = new ImageIcon(“images/fondoIngreso.JPG”);
    JLabel fondo = new JLabel(img);
    fondo.setBounds(-4,-14,img.getIconWidth(),img.getIconHeight());
    getLayeredPane().add(fondo,JLayeredPane.FRAME_CONTENT_LAYER);

    esto es todo y lo pegas despues del setContenPane() q recibe un JPanel, es super practico e interesante.

    • edu dijo:

      ayudame ime como se redondea un variable tipo tipo float para que solo aparezca numeros enteros y solo 2 decimales
      soy estudiante del latinoamericano de Machala estoy en primer semestre de java pless ayudame

      • Hola edu,

        Todas mis respuestas son públicas.

        Busca información sobre la clase DecimalFormat. Algo así podrías hacer:
        DecimalFormat formato = new DecimalFormat(“0.00″);
        float val = 1,45566123;
        String salida = formato.format(val);
        System.out.println(salida); //Te saldrá algo así: 1,46

        Saludos

  4. Rousi dijo:

    Hola!.. tengo una pregunta.. estaba tratando de implementar su codigo para ponerle fondo a una ventana mia pero no reconoce el metodo initComponents().. en ese metodo se llama a paintComponent()?? o para que sirve?? y de que clase es initComponent()??? tengo que sobreescribirla?? AYUDA!!!

  5. Rousi dijo:

    tb use el codigo de mandracke pero la imagen sale un poco mas pequenia de lo normal y asumo que es porque se pone la imagen en un label… como no se como arreglar ese problema me gustaria que me aclare lo de initComponents().. gracias!

  6. Hola Rousi,

    Te comento que el método initComponents, es creado por el IDE NetBeans, y dentro de él se encuentran los métodos para agregar cada uno de los componentes Swing que tenga el JFrame, pero en éste ejemplo ese método está vacío.

    Si tienes problemas encantado te puedo ayudar si me indicas cuál es tú error.

  7. buen truco, pero podrías también pintar la imagen directamente en el JFrame, recuerdan que en java todo componente que tenga la propiedad graphics se podrá pintar, y el método de refresco es el método paint, enves del paintComponent del JPanel, esto seria mas cómodo para cuando sean mas componentes y no tener un panel extra en el fondo que nos estorbe

  8. Lazaro Rodriguez dijo:

    Hola que tal, deseo poner una imagen de fondo pero no muy entiendo el codigo que pones arriba, estoy usando el Jbuilder 2005 tengo que crear otra clase??? o como podria hacerle???, tengo un jTabbedPane en donde tengo 8 Jpanel y a uno le quiero poner la imagen de fondo.

  9. hola, disculpa mi ignorancia lo que pasa es que apenas estoy empezando con el netbeans y java en general, es que no se donde crear esas clases nuevas que iciste, en el main principal del proyecto? o en el codigo de la clase del jframe que en mi caso se llama prueba??, ayudame por favor!!!!!!!!!!!!!!

  10. Hola,
    Te comento que todo el código fuente del proyecto lo puedes descargar, desde la barra derecha busca el título Código cafelo…. y busca el archivo ImagenJFrame.zip (o puedes descargarlo directamente desde: http://www.box.net/encoded/8837127/87108321/168f855c8efb1b0b8401cd26efe54aaf). Ahí verás toda la estructura del proyecto. Pero te comento que están organizados en paquetes. Si tienes dudas encantados de ayudarte.

  11. sonia dijo:

    Hola jorge
    gracias por tu explicacion me ha servido mucho…solo tengo una pregunta como haces para agregar las imagenes en el paquete……perdon por mi ignorancia….gracias

  12. Sabes que para ello hago lo siguiente con NetBeans, busco la pestaña que dice File System, luego busco la carpeta (nombre del paquete) y ahí creo otra carpeta (imagenes) y copio dentro de ella las imágenes con los que voy a trabajar. Luego de unos segundos en la pestaña del proyecto se actualiza. Espero que todo esté claro.

  13. sonia dijo:

    Muchas Gracias!!!….funciono es para nuestra tesis ..te agradecemos enormemente ahora podremos hacer una presentacion con fondos proijos y bonitos…..era una duda que teniamos y con tu pagina la solucionamos….mil graciasssss!!!!!!!!!!

  14. Edgar dijo:

    Buenas tardes,
    Excelente articulo.
    Bueno lo que me gustaria saber ahora, como hacerle para desplegar circulos, elipses, rectangulos,etc

    Saludos y gracias de antemano.

  15. D@v!d M. dijo:

    Interesante, pero la de mayo capacidad es de sobreescribir el metodo paint().

    Con esto tambien puedes crear tus propios botones y tener una interfaz “mas amigable” tipica palabra de tus profes no…

  16. sonia dijo:

    hola…podrias poner un ejemplo..como mostrar una imagen…donde yo guardase sus nombres..en una base de datos….y la imagen en si misma en otra carpeta que no fuera creada en el proyecto (ni guardar las imagenes en la base de datos por ejemmplo en mysql) porque son !!!!! MUCHASS!!! imagenessss….osea como seria ese camino para que encuentre la imagen y donde se guardaria esa carpeta…..BSANDOME EN EL JEMPLO QUE YA DISTE solo como hariamos el caminito para llegar a ella…..gracias….

  17. Leandro dijo:

    Hola soy estudiante de Ing. en informatica de la Universidad del Bio Bio de Chile, y les escribo porque tengo un problema con mi codigo, estamos recien programando en JAVA y mi nivel de programacion no es tan alto… Bueno, mi tarea consiste en en hacer el juego de mesa “La dama”, bueno y lo que hice fue hacer una matriz de paneles de 8×8 para cada espacio del tablero, y pinte los fondo de cadad celda asi:
    celdas[l][k].setBackground(Color.BLACK);
    Pero mi problema es que nose como colocar la imagen de la ficha en ese panel lo hago de esta manera:
    celda[l][k].setImage(roja);
    siendo “roja”, un imageIcon….
    y despues de eso tendria otra pregunta mas….. si ¿un panel o una imagen puede recibir un eventode tipo mouseListener?
    eso seria…. espero su repuesta
    desde.. ya muchas gracias y saludos para alla

  18. arturo dijo:

    la verdad senor jorge.se paso lo felicito y espero e siga asi.soy un estudiante Informatica(analista de sistemas) por favor si puede usted dejar su correo electronico asi se le puede consultar.POR FAVOR

  19. Hola Arturo,
    Gracias por el comentario y puedes ver mi dirección de correo dando clic en la pestaña contactos que se encuentra en la cabecera. Ahí encontrarás las direcciones de todos quienes hacemos ésta iniciativa y estoy seguro que cualquiera de nosotros estaremos gustosos de ayudarte.

  20. Pelayo dijo:

    Buenas tardes Jorge:
    Estoy estudiando Ingeniería de Teleco y estoy haciendo el proyecto fin de carrera. Realizo una herramienta de planificacion de una red GSM y para la parte gráfica uso JavaSwing.
    Me parece muy interesante el ejemplo ya que tendré que trabajar bastante con imagenes, pero hay una cosa que no entiendo. ¿Que hace exactamente el método btnIngresar.setIcon(imgBoton), y de que tipo es la variable btnIngresar?

    Muchas gracias por tu tiempo y ayuda

  21. Pelayo dijo:

    Hola Jorge:
    Muchas gracias!Ya lo he solucionado…pero ahora se me plantea una nueva duda.Si este programa sirviera para recoger un nimbre y una passwor usando JFormattedTextField, ¿Como puedo leer los datos introducidos por el usuario cuando aprieta el boton y que no tenga que dar a Enter en cada campo?
    De nuevo muchas gracias!

  22. sonia dijo:

    hola…podrias poner un ejemplo..como mostrar una imagen…donde yo guardase sus nombres..en una base de datos….y la imagen en si misma en otra carpeta que no fuera creada en el proyecto (ni guardar las imagenes en la base de datos por ejemmplo en mysql) porque son !!!!! MUCHASS!!! imagenessss….osea como seria ese camino para que encuentre la imagen y donde se guardaria esa carpeta…..BSANDOME EN EL JEMPLO QUE YA DISTE solo como hariamos el caminito para llegar a ella…..gracias….

  23. Hola Sonia,
    Te propongo la siguiente solución, si miras dentro del método paintComponent existe una línea que en su parte final dice getResource(“/los/imagen/….jpg”). Como puedes darte cuenta el parámetro es un String, entonces puedes armar tú String concatenando el nombre de la imagen.
    Por ahora no puedo ayudarte con un ejemplo así.

  24. Nancy dijo:

    Hola jorge,
    Estoy realizando un proyecto, mi pregunta es como puedo poner una imagen de fondo si ya he creadi un jFrame form… puedo poner una imagen con jLabel pero no de fondo. AYUDA!!!

  25. arturo dijo:

    nacy ….. el ejemplo que coloco jorge arriba ya te explica claramente.
    No podes colocar un JLabel de fondo si tenes unos campos como TextField o un boton u otro ,porque sino la imagen lo tapa todo.Si no tenes un textfield o un boton u otro componente podes colocar una imagen como vos lo decis (con un JLabel).

  26. Nancy dijo:

    AYUDAAAAAAAA!! Quiero poner los formularios en el centro, busque en las propiedades que ya traen los jFrame Form pero no la encuentro y siempre me los muestra del lado izquierdo superior…:(… o si saben de algun codigo ke pueda poner al inicio del form diganme plizzz!

  27. Hola Nancy, realicé una rápida búsqueda en el Internet y tengo éstas 2 alternativas:
    Desde la versión 1.4 en adelante:
    setLocationRelativeTo(null); pones la sentencia en el constructor, antes que se visualice el JFrame.
    Y para la versión 1.3 o inferiores:
    Dimension dim = getToolkit().getScreenSize();
    Rectangle abounds = getBounds();
    setLocation((dim.width – abounds.width) / 2,
    (dim.height – abounds.height) / 2);
    Este código igual dentro del JFrame.

    No he probado ninguno de los 2 pero me imagino que alguno debe funcionar

  28. Nancy dijo:

    Hola Jorge, gracias por tu ayuda. Te cuento ke ya me salio el formulario al centro de la pantalla.

    Como te comentaba estoy realizando un proyecto. Este consiste en realizar una conexion de Netbeans con SQL SERVER 2005, la verdad la cadena de conexion ya la tengo y he realizado sentencias sencillas y si sirve la conexion. Pero gran problema es ke no se como programar el boton la agregar un nuevo elemento (por ejemplo un empleado).

    Necesito de tu ayuda!!!

  29. arturo dijo:

    bueno nancy…….. creo que para eso debes saber SQL… insertas tranqilamente un registro nuevo en la base de datos……Y para programar en el boton te muestro los pasos:

    1º – seleccionas el boton en donde vas a programar.
    2º – click derecho sobre el boton que seleccionaste.
    3º – Eventos -> Action ->Action Performed.

    tenes muchos eventos…… pero tenes ke sabes para ke sirven cada uno.
    Bye

  30. arturo dijo:

    jorge te pregunto algo:
    Como puedo saber si mi variable del ResultSet me arrojo resultados, te muestro como kiero hacer en codigo:

    ResultSet res=..(EJECUTO LA CONSULTA A LA BD);
    if(res. ( aca keiro saber si me trjo valor o no))
    {
    // aca deseo imprimir unos datos (esto ya lo se);

    }

  31. Hola arturo,
    La única manera que conozco es llamar al método next() del ResultSet (res.next()) y luego tratar de obtener algún dato (res.getLong(“ID”)). Si el ResultSet está vacío lanzará la excepción ResultSet Agotado.
    Tú código debería ser algo así:
    try{
    //Aquí ejecutas la consulta
    res.next();
    res.getLong(“ID”);
    catch(SQLException sqle){
    }
    Espero que te sirva.

  32. arturo dijo:

    MIRA JORGE NO FUNCIONA BIEN: TE PASO MI COSIGO:

    try {
    Statement exs;
    exs = padre.con.get_Connection().createStatement();
    String cade=n.getText();
    ResultSet extra=exs.executeQuery(“SELECT NOMBRE FROM ” +
    “CATEGORIA WHERE NOMBRE =”+cade+””);

    extra.next();
    extra.getLong(2);

    } catch (SQLException ex) {

    javax.swing.JOptionPane.showConfirmDialog(this,”La Categoria “+n.getText().toUpperCase()+” ya existe.”
    ,”ERROR”,javax.swing.JOptionPane.DEFAULT_OPTION,javax.swing.
    JOptionPane.ERROR_MESSAGE);
    cancelarActionPerformed(evt);

    }

    POR MAS KE NO EXISTA MI CATEGORIA. SIEMPRE SE VA A LA EXEPCION Y ME DICE KE LA CATEGORIA YA EXISTE … Y ESTA MAL PORKE PONGO EL NOMBRE DE UNA CATEGORIA NUEVA Y ME DICE KE EXISTE LA CATEGORIA…. POR FAVOR SI ME PODES AYUDAR… ESTE ES UN SISTEMA KE ESTOY DESARROLLANDO…..desde ya muchas gracias………. espero tu respuesta……

  33. ivan dijo:

    Hola, bueno tengo un problemon lo que pasa es que tengo un proyecto y ya casi lo tengo todo lo que me falta es poner un boton que me guarde lo que hice en el jframe quisiera saber si hay algun metodo que me guarde los documentos.

    • Ottoniel dijo:

      primero debes importar la librería de java.io y luego crear el archivo

      intenta esto

      private File f = new File();
      f = newFile(“aquí debes ingresar la dirección del directorio”)

  34. de veras muy buena ayuda para los q incian bueno soy uno de ellos y me ayudo mucho me gustaria q publices mas ejemplos sobre todo quisiera saber como ingresar la fecha y hora de la computadora dode se realiza gracias

  35. arturo dijo:

    jorge arriba te pase un codigo de 25 lineas por ahi……… por favor si podes mirarlo para sacarme la duda y avisame por favor….TENGO KE TERMINAR A TIEMPO MI SISTEMA…gracias

  36. Hola arturo,

    Que raro, puedo jurar que respondí tú comentario, pero bueno, lo vuelvo a hacer.
    En tú sentencia (SELECT NOMBRE ….) selecionas una sola columna, pero cuando dices: extra.getLong(2); le dices a Java que te traiga la segunda columna que no existe dentro del ResultSet, por tal motivo siempre se lanza la excepción.
    Deberías reemplazar extra.getLong(2); por extra.getString(1); por ejemplo.

    Espero que sea de tú ayuda

  37. Ivan Emanuel dijo:

    LO QUE PASA ES QUE TENGO INFORMACION EN UN JFRAME CALCULOS MATEMATICOS, CUENTAS NUMEROS, DATOS QUE EL USUARIO INGRESA, Y ESOS DATOS QUISIERA GUARDARLOS EN UN DOCUMENTO PARA QUE CUANDO CIERRE EL NETBEANS, TENER GUARDADA TODA LA INFORMACION ANTERIOR.

    MUCHAS GRACIAS Y LOS FELICITO POR SU PAGINA CAFELOJANO ES MARAVILLOSA

  38. muy interesante el codigo que me muestras, pero si yo tengo componentes como JtextField. JLabel, JRadioButton en una ventana como pongo una imagen como fondo¿¿??..ojala puedan responder..alla arriba me dicen que solo puedo hacerlo sin que tenga estos componentes…ah estoy trabajando en un JFrame en la IDE eclipse 3.2..(uso neetbeans pero piden preferentemente codigo de eclipse)..ojala puedan ayudarme

  39. QUEEN dijo:

    Hola…Tengo un problema con el codigo ya que la sentencia Dimension tamanio = this.getSize(); me da un error: incompatible type!! A que se debe esto??

  40. Jorge dijo:

    Me parece extraño, revisa la sección de los import, posiblemente se importó otro paquete. Sobre que objeto aplicas getSize(); ? En mi caso lo aplico sobre un JPanel. Revisa éstos puntos y avísame

  41. arturo dijo:

    hola jorge ……. mira tengo un problema……te cuento:

    tengo 2 clases: clase libros y clase comentario.en la clase libros tengo una variable–> public String cadena=””;
    en esta clase(libros) cargo esta cadena ej:cadena=”hola mundo”;

    en la clase comentario quiero obtener este valor de la cadena , entonces instacio el objeto de la clase libros ej :

    public libros obj1;
    obj1=new libros();

    en esta clase comentario declare una variable de tipo String , ej: String cadena2=””;

    cuando kiero obtener el valor de la cadena de la clase libros lo hago de esta manera:

    cadena2=obj1.cadena;

    Este codigo no me tira ningun error ,pero me esta perdiendo el dato de la cadena de la clase libros,o sea me pierde “hola mundo”; me esta diciendo ke la cadena de la clase libros tiene valor NULL;

    Otra cosa ke te cuento es ke kise trabajar con herencia pero la clase base debe ser abstracta o sea no puedo instanciar un objeto de esa clase o sea de la clase libros, y ese es el otro problema porke tengo ke instanciar si o si…….

    POR FAVOR SI ME PODES DAR UNA SOLUCION……GRACIAS

    • Ottoniel dijo:

      por lo de arriba:

      te recomiendo uses un método primero que te regrese la cadena:

      public String getCadena{
      return cadena();

      y luego hazlo en la clase main.

  42. Hola arturo,
    Te pregunto lo siguiente ¿cuándo asignas el valor de hola mundo a cadena? ¿está dentro del constructor? Yo la pondría dentro del constructor.
    Con respecto a la herencia, no se necesita que la clase sea abstracta.
    Si puedes mira en la sección de contactos y ahí encontrarás mi correo y envíame tú código para revisar que puede estar pasando.

  43. arturo dijo:

    como va jorge…..mira ahi te mande por correo lo de mi problema anteriormente comentado…… una cosa mas te pregunto…:

    mi sistema va a tener una ayuda, como cualquier otro sistema..Lo que trato de hacer es abrir desde java un archivo de word o pdf .Asi el operador puede consultar la ayuda.
    Pregunta: ¿Como puedo abrir desde java un archivo de WORD o un PDF?

  44. Hola Jorge.

    Soy egresado de la facultada de Sistemas de la UTPL y me encuentro realizando un proyecto, me podrías ayudar informando como puedo insertar una imagen desde mi base de datos (tengo claro que no es muy aconsejable ingresar las imágenes en la base de datos, yo almaceno el path de la fotografía pero me nace la curiosidad de saberlo) la base tiene un campo tipo “blob” pero no puedo cargarla en un label con setIcon como puedo hacer, Muchas gracias

  45. Hola,

    Hola dentro de un campo BLOB se almacena información binaria, es así que podemos leer con un arreglo de bytes.

    Supongamos que tenemos lo siguiente:
    ResultSet rs = stmt.executeQuery(“SELECT foto from imagenes WHERE ID = 1″);
    byte[] img = rs.getBytes(1);
    Image imagen = getImage(img, false);

    Y aprovechando un código que encontré ayer puedes llamar al método:

    private Image getImage(byte[] bytes, boolean isThumbnail) throws IOException {
    ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
    Iterator readers = ImageIO.getImageReadersByFormatName(“jpeg”);
    ImageReader reader = (ImageReader) readers.next();
    Object source = bis; // File or InputStream
    ImageInputStream iis = ImageIO.createImageInputStream(source);
    reader.setInput(iis, true);
    ImageReadParam param = reader.getDefaultReadParam();
    if (isThumbnail) {
    param.setSourceSubsampling(4, 4, 0, 0);
    }
    return reader.read(0, param);
    }

    Te comento que no lo he probado, pero creo que funciona.

    Espero que sea de tú ayuda.

  46. arturo dijo:

    lo que passa es ke nesecio saber si el elemento que voy a insertar en el JComboBox aun no existe .Ej:

    dentro del combobox tengo los valores 1,2,3.
    Ahora nesecito insertar un 4, para eso kiero saber si el elemento 4 existe o no…Si existe entonces me avisara ke no puedo insetar el elemento 4 porke ya existe .
    Si no existe el elemento 4 entonces procede a la inserción del valor 4 en el combobox.

  47. Se me ocurre algo así:
    private boolean existeElemento(String elemento){
    for(int i = 0; i < this.cbxPrueba.getItemCount(); i++){
    if(elemento.equals(this.cbxPrueba.getItemAt(i).toString())){
    return true;
    }
    }
    return false;
    }

    Donde cbxPrueba es un JComboBox y el método, existeElemento, resive como parámetro el nuevo valor a insertar.

    Espero que te sirva.

  48. Andres dijo:

    Hola que tal…tengo una pegunta y es la siguiente…estoy desarrollando una aplicacion web con componentes de IceFaces usando JSF y Managed Beans quiero llenar un comboBox con diferentes colores. Se puede hacer esto??

  49. arturo dijo:

    ya solucione lo de la desabilitacion del boton cerrar…
    pero te voy a preguntar otra cosa: como puedo pasar datos de una tabla temporal a una original,, trato de la siguiente manera y no kiere funcionar:

    INSERT INTO CATEGORIAS_LIBROS VALUES(SELECT NRO_LIBRO,NRO_CATEGORIA FROM CATEGORIAS_LIBROS_TMP WHERE NRO_LIBRO=30);

    desde ya muchas gracias….

  50. edgar_20 dijo:

    Hola que tal?Tengo un inconveniente…quiero obtener la fecha del sistema y cargar en una base de datos.. pero en la base de datos el tipo de datos es DATE…y si lo concateno no funciona xq pasa como STRING…Agradeceria una pronta respuesta!

  51. Hola,
    ¿Con que base de datos trabajas? Podrías aplicar alguna función de tú base de datos, como en Oracle, TO_DATE(’15-11-2007′), para transformar un String a Date. Revisa las funciones de tú base de datos.

    Para obtener la fecha del sistema hago lo siguiente:
    Calendar calendario = Calendar.getInstance();
    Date f = calendario.getTime();
    System.out.println(f);

    Ésto te devuelve algo así:
    Thu Nov 15 08:45:37 COT 2007

    Si quiero darle algún formato específico, utilizo la clase SimpleDateFormat y el método format, pero éste método me retorna un String.

    Te repito revisa tú base de datos y sus funciones.

  52. zejulian dijo:

    zejorge

    tengo problemaz no ze como insertar una imagen en el campo blob de mi base de datos.

    noze zi me pueda ayudar.

    yo tengo algo de codigo k les puede servir a la comunidad de java

    bueno ez todo noz vemoz en el futuro…!
    CUIDA EL PLANETA

  53. juancho dijo:

    ej:

    String fecha=”2007-12-25″;

    la fecha kiero que sea de tipo Date……ej:

    Date F=(Date)fecha; (ya se ke esto no funciona pero estoy dando un ejemplo de lo ke kiero hacer)

  54. Hola juancho,

    Debes utilizar la clase SimpleDateFormat, que te permite transformar fecha a texto o texto a fecha.

    Prueba con éste ejemplo:

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;

    public class Transforma {

    /** Creates a new instance of Transforma */
    public Transforma() {
    }

    public static void main(String[] args) {
    SimpleDateFormat formatoDelTexto = new SimpleDateFormat(“yyyy-MM-dd”);
    String strFecha = “2007-12-25″;
    Date fecha = null;
    try {

    fecha = formatoDelTexto.parse(strFecha);
    } catch (ParseException ex) {
    ex.printStackTrace();
    }

    System.out.println(fecha.toString());
    }

    }

  55. Alejadro Magno dijo:

    E que es una aplicacion de una bibliotek
    y no se como putas abrir en el panel el pdf seleccionado desde un directorio pero con el nombe en la database

  56. arturo dijo:

    hola jorge…mira tengo una pregunta y espero ke me respondas por favor…. yo estoy desarrollando un sistema..tengo un compañero ke tambien lo esta haciendo a la par mia.. pero el problema es ke yo trabajo con una makina virtual un poco mas vieja y no consigo levantar los archivos ke me esta pasando ..o sea los archivo ke se alojan en la carpeta SRC del proyecto. me esta tirando un error del groupLayout y cuando le importo la libreria ke me pide ,sigue con el mismo problema….por favor si me puedes ayudar con esto te agradeceria un monton……gracias….

    yo trabajo con el netbeans version : 5.0
    mi compañero trabaja con la version: 5.1

  57. Hola arturo,
    Al parecer tú problema es por la falta de un archivo .jar que netbeans utiliza para la distribución de componentes, un Layout.
    Lo puedes resolver agregando a tú proyecto el archivo .jar
    En mi NetBeans 5.5 dicho archivo se llama swing-layout-1.0.jar

  58. arturo,

    No tienes que crear ningún jar sino importar el archivo .jar que contiene las clases del layout que utiliza NetBeans para crear la distribuciòn de componentes dentro de los JFramen, JPanel, etc. Como te mencioné importalo dentro de tú proyecto.

  59. arturo dijo:

    jorge,

    tengo un problema:

    obtener la fecha actual en java lo se hacer sin ningun problema…

    Mi problema es el siguiente:
    ¿Como puedo obtener la fecha actual mas un dia mas?…

    Ej: 2007-12-03 [ACTUAL DE MI SISTEMA]

    lo ke kiero obtener es asi:

    2007-12-04 [UN DIA MAS]

    POR FAVOR SI ME PUEDES RESPONDER……..

  60. Tere dijo:

    Hola, excelente ejemplo me ha servido de mucho!
    Ahora necesito de su ayuda, …. Tengo un frame y este consta de 4 paneles. Uno de ellos debe tener como fondo una imagen, y ese panel lo voy a manipular con MouseListener, pues dependiendo de donde el usuario de click tendre eventos diferentes.
    En Netbeans como declaro que mi panel1 tiene de fondo imagenX. Porque paintComponent pinta todo el frame o el panel según sea el caso. Pero aqui yo tengo un frame que consta de 4 paneles y 2 deben tener diferente imagen. Que me aconsejan? Gracias!!

  61. Hola Tere,

    Te comento que en el ejemplo estoy trabajando con JPanel, creo un JPanel pinto la imagen y luego lo ubico dentro del JFrame, no estoy dibujando directamente sobre el JFrame.
    Así puedes tener varios JPanel cada uno con su propia imagen dentro de un mismo JFrame.
    Espero que sea de tú ayuda.

  62. Tere dijo:

    Hola, Ya lo resolví, muchas gracias por la ayuda!!

    y nuevamente felicidades por el espacio, además de resolver nuestras dudas, lo hacen en tiempo record!!

    gracias =)

  63. artur dijo:

    jorge, te hice una pregunta y no me respondiste, y le repondiste a otros y a mi no…………….

    TENGO ESTE PROBLEMA:

    obtener la fecha actual en java lo se hacer sin ningun problema…

    Mi problema es el siguiente:
    ¿Como puedo obtener la fecha actual mas un dia mas?…

    Ej: 2007-12-03 [ACTUAL DE MI SISTEMA]

    lo ke kiero obtener es asi:

    2007-12-04 [UN DIA MAS]

    POR FAVOR SI ME PUEDES RESPONDER……..

  64. Hola arturo,

    Te comento que lo puedes hacer de 2 formas que te presento en éste extracto de un programa. Te sugiero que trabajes con la segunda, debido a que algunos métodos de la clase Date están marcados como Deprecated.

    //Primera forma
    Date fechaActual = new Date();
    long milisegundos = fechaActual.getTime();
    System.out.println(“Fecha actual: “+fechaActual);
    /*24 horas de un día, 60 minutos de una hora, 60 segundos de un minuto
    *y 1000 para transformarlo a milisegundos
    * */
    milisegundos += (24*60*60*1000);
    fechaActual.setTime(milisegundos);
    System.out.println(“Fecha + 1 día: ” + fechaActual);

    //Segunda Forma
    System.out.println(“Uso de operaciones con calendar”);
    Calendar calendario = GregorianCalendar.getInstance();
    System.out.println(“Fecha actual: ” + calendario.getTime());
    //GregorianCalendar.DATE hace referencia al día
    calendario.add(GregorianCalendar.DATE, 1);
    System.out.println(“Fecha + 1 día: ” + calendario.getTime());

    Espero que sea de tú ayuda.

  65. Andres dijo:

    Te felicito Jorge soy de la UPS de Cuenca y sigo Ing En SIstemas tu ayuda a muchas personas que estan comenzando en este hermoso mundo de la programacion y mucho mejor de software libre es muy interesante.
    Noc si entendi mal que eres profesor y eso es de admirarce no eres una persona acomplejada y tienes tanta seguridad de tus conocimientos esto es a lo que se refiere con conocimiento libre de informacion te felicito espero existan mas Ing. como tu lastimosamente no los hay ha y lo mejor Made In Ecuador.
    Si algun momento necesitas ayuda en JAVA en cualquier sentido te comunicas.

    Te pongo este problem que lo resovi en un mes crear un codigo en java que al compilarlo crea un archivo punto H de C++ y al ejecutarlo en C++ te redirecciona por JAVA es estupido xq nunca lo vas a utilizar pero asi son de pendejos ak

  66. Andres,

    Gracias por tus palabras.

    Con respecto al problema, si lo detallas un poco más, no entiendo como al compilar un programa Java se pueda crear una librería de C++, y tampoco entiendo “te redirecciona”. Con más detalles te podría comentar algo, no sé si son temas de JNI.

    Saludos

  67. artur dijo:

    jorge…
    nose si te acuerdas ke me estaba tirando un error mi proyecto por falta de una libreria..Mira intente de todo ahora te digo mas especificamente el error, el error es el siguiente
    —-> import org.jdesktop.layout.*;

    mwe dice ke no existe..Es mas importo la libreria SWING ke tu abias mencionado y ni asi funciona
    me dice el error:
    import org.jdesktop.layout.*; does not exist; EN OTRAS PALABRAS ME DICE KE NO EXISTE , y hemos comparado con mi amigo la cantidad de .jar ke tenemos cada uno y es la misma cantidad.. Y como te dije ni importando el Swing a mi proyecto funciona.. si me puedes dar una solucion te agradeceria ya ke este martes debo presentar el sistema , el 100% del mismo
    GRACIAS

  68. Arturo,

    Te comento que he revisado el archivo swing-layout-1.0.jar y dentro de él se encuentran las clases que te dan problemas, ¿incluiste dicho archivo como librería de tú proyecto? ¿Qué acciones realizaste?
    Cuando le das un Clean and build a tú proyecto se crea un directorio dist (dentro de la carpeta del proyecto) que incluye todos los .jar necesarios para ejecutar tú programa. Revísalo y me avisas.

  69. artur dijo:

    si he incluido ese archivo desde el netbeans 5.5.1 “Swing Layout Extensions – Swing-Layout-1.0.jar” esto lo incluí en “Labraries”, ademas tengo otros archivos ke son 7 para levantar los reportes con el ireport.He mandado una imagen a tu correo.

  70. Rodrigo dijo:

    Jorge, que alegrísa saber que doscentes de UTPL mantengan una página de este nivel. Soy estudiante de la UTPL modalidad a distancia, estoy iniciandome en NeatBeans y java tengo una inquietud, estoy diseñando una aplicación que tiene varios menus, dependiendo el menu se carga una frame que es una instancia de una clase que he diseñado. Como puedo hacer para que todos estos frames me aparezcan en una misma pantalla, como en el antiguo Visual Basic 6 que si uno colocaba que era hijo de un main frame
    Gracias

  71. Hola Rodrigo,

    Te comento que para que puedas realizar lo que deseas, debes trabajar con JInternalFrame(ventanas hijas) en lugar de JFrame. Debes tener un JFrame principal (ventana padre) que debe implementar un JDesktopPane.

    Espero que sea de tú ayuda y cualquier comentario me lo haces saber.

  72. Daniel Marquez dijo:

    La verdad que poner un fondo (imagen) en un JFrame es de lo mas fail.

    1.- Primero en la parte izquierda de la ventada de netbeans tenemos el inspector con todos los componentes ubicados tipo arbol. En el JFrame damos clic derecho –>set Layout –>null Layout.
    2.- luego pones todos los componentes que quieras que tenga tu aplicacion en el JFrame.
    3.- y por ultimo ubica un jLabel. presiona clik derecho sobre el jLabel luego propiedades luego en icono –>classpath–>select file y busca en el paquete que tienes donde tienes la imagen
    OK

  73. Daniel,

    Algunos “problemas” que tiene tú solución:
    NullLayout no es muy recomendable utilizar porque se tienen problemas al momento de redimencionar las ventanas.
    Seleccionar imágenes desde el sistema de archivos tampoco es muy recomendable, porque si llevas tú aplicación a otro computador en donde no se tengan las mismas carpetas no encontrará la imagen y ni hablar de otro sistema operativo.
    Y por último te pregunto ¿la imagen no se sobrepone sobre los otros elementos y no los deja ver? Tengo entendido que es así, corrígeme si me equivoco.

  74. Daniel dijo:

    Yo cuando quiero poner un fondo utilizo ese método y no me da problema para presentar en otra computadora.

    Cuando se utiliza icono –>classpath–>select file ya se tiene que tener creado un paquete en el proyecto sino cuando abramos select file no vamos a encontrar imágenes. O envés de crear un paquete en el proyecto, podemos crear una carpeta (para poner la imágenes) en la carpeta src que está en la carpeta del proyecto. y luego icono –>classpath–>select file .
    Asi cuando llevemos nuestro proyecto a otra computadora no abra problema de que lo encuentre.
    Asi la imagen quedara de fondo y los demas componentes se podran ver

  75. natalia dijo:

    hola jorge:
    Estamos trabajando con netbeans y tenemos problemas para obtener datos o mejor dicho como se hace para obtener datos de campo de texto y guardar en Mysql, considarando que tenemos todas las conexiones. Por favor ayudanos, es urgente.
    Y otra cosa. Como genero consultas??

  76. Hola natalia,

    Sabes que no encuentro por donde empezar. Para obtener el texto ingresado en un JTextField debes utilizar el método getText() de un objeto de ese tipo y luego puedes hacer lo que necesitas con la información. Cómo generas consultas, puedes puedes utilizar el propio NetBeans para crear tus consultas u otras herramientas que te permitan conectarte con la base de datos.

    Aclara un poco tus preguntas y las vuelves a hacer que gusto trataré de ayudarte.

  77. arturo dijo:

    hola jorge …… como va…tanto tiempo che…todo bien…….??? …Mira , si bien no recuerdo … he realizado una pregunta hace rato……la pregunta era la siguiente:
    ¿COMO SE PUEDE DESABILITAR EL BOTON CERRAR DE LAS VENTANAS ESE BOTON KE SE ENCUENTRA EN LA PARTE SUPERIOR DERECHA DE LA PANTALLA —> [X]?………. por favor si puedes responder ….. GRACIAS……

  78. Hola arturo,

    Todo bien algo ocupado.

    Te comento lo que puedes hacer:
    JFrame ventana = new JFrame();
    ventana.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

    Si bien ésto gráficamente no tiene efecto, cuando el usuario de click sobre el botón no sucederá nada.

    Ahora también podrías trabajar con el evento que se lanza cuando se cierra la ventana algo así:

    ventana.addWindowListener(new java.awt.event.WindowAdapter() {
    public void windowClosing(WindowEvent winEvt) {
    //Tú codigo aquí
    System.exit(0);
    }
    });

    Te dejo un link para que lo revises:

    http://java.sun.com/docs/books/tutorial/uiswing/components/frame.html

    Ahí puedes encontrar cómo se puede trabajar con Full Screen

  79. john dijo:

    hola soy estudiante de informatica y lo q quiero hacer es una aplicacion q pueda manipular cualquier formulario java hecho por otros y yo pueda modificar sus eventos (editable,enable,visible) asi como los (IDEs) de netbeans y eclipse y guardar esos nuevos cambios para la proxima vez q sean utilizados tengan mi modificacion….
    agradeceria algun consejo……….
    gracias.

  80. Hola john,
    Te comento que tú tarea no es sencilla, no he trabajado con algo así, pero te puedo comentar que en netbeans la parte gráfica se apoya en archivos, creo que xml, en donde se guarda información sobre los componentes.

    Trataré de buscar información para ver si te puedo ayudar.

  81. arturo dijo:

    hoa jorge …. anduve buscando mucho un tutorial de NETBEANS 6.0 y no encntre por ningun lado.
    Tu sabes donde lo puedo buscar, Si es en español es mejor.
    Tambien estoy muy interesados en desarrollo de paginas web con el NETBEANS 6.0

  82. Hola arturo,
    Para un proyecto Desktop, puedes darle un clean & build y eso te generará una carpeta dist, dentro del directorio de tú proyecto. Dentro de dicha carpeta tienes un archivo .jar (.jar) y una carpeta lib si le das doble clic sobre el .jar se ejecuta tú proyecto. Eso sí el computador debe tener la JVM
    Ahora puedes utilizar una herramienta que se llama InstalAnyWhere que te permite crear instaladores e inclusive te instala la máquina virtual si hace falta.

  83. arturo dijo:

    Hola jorge,

    tengo un JFormattedTextField, y quiero aplicarle una máscara como la siguiente:

    MaskFormatter mascara = null;
    try {
    mascara = new MaskFormatter(“###.##”);
    }catch (ParseException ee){
    }

    Dicha máscara, obliga a introducir un número de tres dígitos y dos decimales como xxx.yy, pero si lo que quiero es que se introduzca un número que tenga entre uno y tres dígitos, y dos decimales: por ejemplo: x.yy o xx.yy o xxx.yy,

    ¿Como lo puedo hacer con la máscara?

    Gracias por todo.

  84. Mari dijo:

    Hola, tengo una pregunta, tomé el ejemplo de poner una imagen de fondo en un JFrame que publicaste, tengo Netbeans 5.5.1, el IDE no me reconoce la palabra “Dimension” que se encuentra en la modificación que se hace a paintComponent en la clase PnlFondo, quisiera saber porqué, ¿o es que tengo que usar otro paquete además de awt.Image?
    Muchas gracias

  85. Mari dijo:

    Otra duda, quiero reproducir un archivo de sonido al presionar un botón, usando la librería Java Sound porque es una aplicación, con awt y JMF sí me funciona pero en applets, el problema es que no quiero usar applets, ya que es para una aplicación.
    Gracias de nuevo.Saludos

  86. Mari,

    El clase Dimension, se encuentra dentro del paquete java.awt, así que debes importar dicho paquete que te funcione el código.

    Y respecto a la reproducir un archivo de sonido te funcionará igual en una aplicación no existe dependencia con los applets o si tienes algún problema dime cuál es para poder ayudarte.

  87. arturo dijo:

    HOLA DE NUEVO ,,,, jorge;

    tengo un JFormattedTextField, y quiero aplicarle una máscara como la siguiente:

    MaskFormatter mascara = null;
    try {
    mascara = new MaskFormatter(”###.##”);
    }catch (ParseException ee){
    }

    Dicha máscara, obliga a introducir un número de tres dígitos y dos decimales como xxx.yy, pero si lo que quiero es que se introduzca un número que tenga entre uno y tres dígitos, y dos decimales: por ejemplo: x.yy o xx.yy o xxx.yy,

    ¿Como lo puedo hacer con la máscara?

    ME PODES AYUDAR POR FAVOR… !!!!!!!!!!!!!!!!!

    hora: 18:49:56

  88. arturo dijo:

    como va jorge…… te kiero preguntar otra cosa.

    ¿Alguna vez realisaste una aplicacion en java/J2EE?

    si has realizado alguna aplñicacion, te pediria por favor algunos pasos para realizar una aplicacion en J2EE.

    He buscado mucho por internet y lo que pasa es uqe se explica muchas cosas , pero nunca dicen los pasos que hay que seguir para realizar una aplicacion como esta (j2ee).

    gracias por todo !!!!!!!!!!

  89. Hola,
    Te comento que por acá en Loja sigue siendo un mito, pero poco a poco lo estamos derribando. Recientemente escribí un post sobre EJB y JSF que te recomiendo que leas y busques el link sobre los blueprints de JEE que te servirán de guía.

    Espero que sea de tú ayuda.

  90. HiPoTeR dijo:

    Hola, estoy utilizando lo siguiente para poner un icono en un jFrame
    public void setIconImage(Image image) {
    setIconImage(new ImageIcon(getClass().getResource(“/imagenes/vercarrito.gif”)).getImage());
    }
    Cuando pulso F6 y veo el formulario no me sale el icono que estoy intentando porner, me echais una mano? plz…

  91. Hola HiPoTer,

    Te cometo, que si estas dentro de una clase que herede de JFrame bastará con escribir setIconImage(new ImageIcon(getClass().getResource(”/imagenes/vercarrito.gif”)).getImage());
    y no tienes que sobreescribir el método setIconImage. Pruebalo así y me comunicas cualquier novedad

  92. arturo dijo:

    hola jorge …… tengo un pekeño problema y es lo ultimo ke me keda para concluir con el sistema ….
    mi pregunta esta realacionada con la creacion del .exe , ya h ebajado un soft para crearlo y anda perfecto peroo…….
    ¿porke me tira error del driver de coneccion a la base de datos?.. La base de datos con la ke estoy trabajando es PostgresSQL…. Me podrias dar una manito ….. desde ya muchas gracias … y espero una pronta respuesta… gracias

  93. arturo dijo:

    jorge el error es el siguiente :

    org.postgresql.Driver

    te comento otra cosa. El driver de coneccion ke tengo para realizar las consultas lo tengo en la JVM.

    ese driver ke me tira error (org.postgresql.Driver) no tengo la menor idea porke lo hace.

  94. Hola arturo,

    Algo raro tú problema, pero al parecer no encuentra el Driver, te recomiendo que ubiques el Driver, como librería en tú proyecto de NetBeans y vuelvas a generar el ejecutable, eso cómo idea.

    También deberías tener, dentro de tú sistema, un Log en donde puedas registrar éstos problemas en tiempo de ejecución.

    Revisa lo que te comento de la librería y me comentas alguna duda.

  95. arturo dijo:

    como estas jorge … mira hice lo ke me dijiste ke haga , menos eso del log. Pero persiste el problema , por eso , te he enviado por correo una imagen para ke lo puedas observar.
    Con una breve explicacion en la imagen…..Gracias

  96. arturo dijo:

    yo de nuevo jorge…… e incorporado en la libreria el jar de postgresql pero ni asi kiere andar esta porkeria…….. kiero prender fuego esta PC……………..!!!!!!!!!!!!!!!!! Ya no se ke le pasa….!!!!

  97. arturo,

    Suele suceder, pero tal vez si pones que se muestre la excepción en JDialog, para que muestre el detalle del error, con eso nos guiamos de una mejor manera. Porque puede ser que no encuentra la clase del Driver o porque está algo mal con la cadena de conexión.
    Con que herramienta generaste el ejecutable o instalador?
    Le hiciste un Clean and Build de tú proyecto? Si lo hiciste busca el archivo .jar que te genera y trata de correr tú aplicación desde ahí (doble clic sobre el jar)y comentas si funciona.

  98. arturo dijo:

    la herramienta con la que realizo los ejecutables es con el “LAUNCH4J” , ya realice el clean and build, y estoy imprimiendo el mensaje de error , por eso sale el mensaje –>(org.postgresql.Driver);
    Cuando entra a la excepcion lo imprimo. Ahi te he enviado por correo , mi clase de coneccion , aver ke puede ser !!!
    Espero tener suerte :P; y como siempre te digo , GRACIAS por estar a disposicion de la mejor manera.

  99. arturo dijo:

    jorge…. te aviso ke lo logre hacer andar a esta porkeria…… Era una pelotudes…. pero igualmente te agradesco un montonaso por estar en comunicacion .. Gracias amigo .

  100. arturo,

    Estamos para ayudarnos y nos gustaría que nos colabores con algún post, por ejemplo indicando como resolviste la pelotudes, que en Ecuador sería “una huevada” o “una pendejada”. Vamos te invito a escribir y que los compartas con todos.

  101. Hola arturo,

    Puedes crear un documento utilizando un procesaador de texto le incluyes imágenes, etc. Subimos el archivo. Y luego creamos un post con una descripción breve de lo que contiene el documento y ubicamos una referencia.

    Espero tener pronto tú post

  102. HiPoTeR dijo:

    Para poner un icono en el jFrame principal he puesto la siguiente linea en el constructor setIconImage(Toolkit.getDefaultToolkit().getImage((getClass().getResource(“/imagenes/vercarrito.gif”))));
    con esta línea ha funcionado sin quejas ni problemas.
    Jorge, con la que tú me pasaste, no funciona cuando pongo… setIconImage(new ImageIcon( “./imagenes/vercarrito.gif” ).getImage());
    Además que el método lo he tenido que generar con lel netbeans te sale a la izquierda de codigo la bombilita amarilla indicandotelo. Cono la línea de arriva no he tenido problema para hacerlo. Gracias

  103. HiPoTeR dijo:

    setIconImage(Toolkit.getDefaultToolkit().getImage
    ((getClass().getResource
    (“/imagenes/vercarrito.gif”))));

    Con esta linea. para el icono en un jFrame

  104. HiPoTeR dijo:

    Hola de otra vez, ahora me surgió otra duda. A la hora de poner un jLayeredPane, he inentado darle una alineación con respecto al jFrame que está contenido y dentro de este como podría alinear unos jButton por ejemplo. Sin el netbeans lo he podido hacer de la siguiente forma:
    JFrame f = new JFrame(“Ejemplo de JFrame”);
    Container cont = f.getContentPane();
    cont.setLayout(new BoxLayout(cont, BoxLayout.Y_AXIS));
    JButton boton_1 = new JButton(“Boton_1″);
    JButton boton_2 = new JButton(“Boton_2″);
    boton_1.setAlignmentX(Component.CENTER_ALIGNMENT);
    boton_2.setAlignmentX(Component.CENTER_ALIGNMENT);
    cont.add(boton_1);
    cont.add(boton_2);

    Estoy intentando hacer algo parecido en netbeans sin existo. Como tendría que instanciar esto en netbeans?
    JFrame f = new JFrame(“Ejemplo de JFrame”);

    Lo demás supongo que vendría ya solo.

  105. Hola HiPoTeR,

    Te comento que algunas cosas también las genero a mano, debido a que desconozco si se pueden hacer con NetBeans. Eso si utilizando la pestaña Código y cada una de sus alternativas dependiendo de mis necesidades.

    Saludos

  106. arturo dijo:

    1) jorge…. he podoido hacer un ejecutable…. pero sin imagenes ; cuando coloco imagenes de fondo a un sistema que realice , y cuando termino de crear el .exe, no puede ejecutar, ya ke no le gusta los nº de lineas siguites: 20,21,22 de la clase FramePrincipal.-
    Y cuando saco estas 3 lineas de codigo y vuelvo a crear el .exe , no me da problemas.

    Otro problema (otro sistema[ke realice]):

    2) otro problema kon otro sistema es ke no me encuentra la clase principal…-

    PD:el post lo haré mas adelante, ya ke estoy muy ocupado investigando J2EE…..

  107. huesite dijo:

    Hola Jorge, yo estoy haciendo una aplicación donde necesitaria poner como fondo una pagina web que se actualiza cuando comienza a correr el sistema.
    ¿Como debería hacer esto? ¿que objeto se utiliza para contener la pagina y me la muestre como un browser?

    Desde ya muchas gracias !!!

  108. Melissa dijo:

    Hola, me gustaria saber si hay en java una funcion o metodo que me permita hacer operaciones matematicas dentro de un jtable. Agradezco de antemano su atencion.

  109. Melissa dijo:

    Hola Jorge, Voy a ver la pagina que me dices, para variar tengo otra pregunta soy nueva en esto de la programacion Java especificamente en netbeans, estoy trabajando con 2 Jframe cada uno tiene un jtable en el jframe2 tengo cargada informacion de la base de datos por medio de un resultset ahora lo que tengo que hacer es que al dar click en una fila del Jtable se copie la informacion al jtable del Jframe1 tengo el siguiente codigo pero no se como seguirlo
    ni que debo programar en el Jframe1.

    private void tablaproductoMouseClicked(java.awt.event.MouseEvent evt) {
    // TODO add your handling code here:
    if(evt.getClickCount()==1)
    {
    int fila;
    fila=tablaproducto.getSelectedRow();

    Te agradezco tu ayuda.

  110. Hola Melissa,

    Haber si me explico. Tiene un JFrame FormularioA (que contiene los datos en forma de tabla) y tienes un JFrame FormularioB (en donde se copiará la información). En FormularioA debes tener una referencia (una variable del tipo FormularioB) y en el método que mencionas deberías hacer algo así:
    FormularioB.setDatos();
    podría ser un arreglo. Y en FormularioB, en el método setDatos… deberías hacer la manipulación del arreglo según tus necesidades.

    Espero que sea de tú ayuda.

  111. Melissa,

    Con el índice de la fila seleccionada puedes utilizar el método getValueAt del objeto de tipo JTable para tener acceso a cada columna. Algo así:

    tablaProducto.getValueAt(fila, 0); //el segundo parámetro 0 es el índice de la columna.

    Te creas el arreglo con cada uno de los datos y lo pasas al otro formulario.

    Espero que te ayude.

  112. arturo dijo:

    CHE JORGITO !!!! DAME UNA MANO CHE …… Te pregunte primero ke : un tal huesite y la melissa esa,,, :P

    1) jorge…. he podoido hacer un ejecutable….
    pero sin imagenes ; cuando coloco imagenes de fondo a un sistema que realice , y cuando termino de crear el .exe, no puede ejecutar, ya ke no le gusta los nº de lineas siguites: 20,21,22 de la clase FramePrincipal.-
    Y cuando saco estas 3 lineas de codigo y vuelvo a crear el .exe , no me da problemas.

    Otro problema (otro sistema[ke realice]):

    2) otro problema kon otro sistema es ke no me encuentra la clase principal…-

    PD:el post lo haré mas adelante, ya ke estoy muy ocupado investigando J2EE…..

  113. Arturo,

    Hace mucho tiempo que no creo archivos .exe (limitan la aplicación a solo Windows), me quedo con el archivo .jar que genera el NetBeans. Me parece extraño tú problema, pero talvez la herramienta con la que generas los ejecutables no interpreta las líneas que menciona (no le encuentra equivalencias) o algo así.
    ¿Porque no trabajas con los archivos .jar?

  114. huesite dijo:

    Jorge, se bien como trabajar con paginas web, hé estado haciendo sistemas importantes sobre web.
    Lo que yo quiero es poner como fondo de una aplicación una pagina web, de la misma manera que en este caso se puso una imagen de fondo, ya pude hacerlo con JEditorPane, pero tendria que aparecer sobre JDesktopPane porque es una aplicación MDI y sobre la pagina web tienen que aparecer los formularios del sistema.
    La idea es que al abrir el sistema y aún no se seleccionó ninguna opción del sistema aparezca una pagina con información, ya sea cambio de reglas de negocio u otro tipo, el fondo lo levantaria del hosting donde se encuentre la pagina oficial de la empresa o en un localhost si el sistema corre en intranet, talvez porque el tipo de negocio no posee sucursales, etc, etc, etc.

  115. Hola huesite,

    Ahora comprendo mejor. No sé si se pueda poner como fondo una página Web, talvez algún mecanismo que capture como imagen la página Web y la ubique en un directorio de donde la cargue tú aplicación.

    Si mal no recuerdo existe un componente para Swing que te permite ver el contenido de una página Web.
    Entonces podrías ubicar éste componente mientras el usuario no seleccione ninguna opción.
    Algunas opciones podrían ser:

    http://www.webrenderer.com/

    http://djproject.sourceforge.net/main/index.html

    Esas son mis ideas por ahora.

  116. Melissa dijo:

    Hola Jorge, ya funciona mi aplicacion gracias por tu ayuda, mire la pagina que me sugeriste para los calculos matematicos dentro del jtable pero no encontre nada.

    Un gran abrazo desde Honduras.

  117. Melissa dijo:

    Hola Jorge, ya funciona mi aplicacion gracias por tu ayuda, mire la pagina que me sugeriste para lo de hacer calculos dentro del jtable, pero no encontre nada.

    recibe un abrazo grande desde Honduras. :-)

  118. Melissa dijo:

    Hola Jorge, fijate que estoy tratando de hace los calculos dentro de la tabla y se ocurrio lo siguiente:
    int fila;
    fila=cotiza.getSelectedRow();
    String valorCelda=(String)cotiza.getValueAt(fila,2);
    String valorCelda2=(String)cotiza.getValueAt(fila,4);
    double valor=Double.parseDouble(valorCelda);
    double valor2=Double.parseDouble(valorCelda2);
    double total=(valor*valor2);
    El calculo me lo hace bien ahora lo que no he hallado como hacer es que el valor de total aparesca en una celda de la tabla. Sabes Como hacer eso?

  119. Melissa dijo:

    Hola Jorge

    fijate que necesito hacer un contador que cada vez que yo habra un jframe sume 1 a una variable que aparecera en un jtexfield y no tengo ni idea como empezar.

  120. Melissa dijo:

    Hola de nuevo Jorge

    Mira tengo una consulta nunca e impreso desde netbeans y tengo que mandar a que se imprima un jframe que tengo por medio de un boton ¿como se hace esto?.

  121. edgar_20 dijo:

    hola jorge

    me gustaria q me digas como puedo obtener el mes de una fecha…por ej: quiero obtener el mes de la fecha 11-10-2007 … q seria el mes 10.. en formato int

    la fecha no es la fecha actual del sistema

    por favor si me podes responder rapido porque necesito entregar un soft pronto…

  122. arturo dijo:

    jorge te comento ke este chico edgar_20 es mi amigo y estamos desarrollando el sistema que te pregunto a cada rato.
    Edgar amigo mio la cosa es asi :

    Calendar c=new GregorianCalendar();
    c.get(Calendar.MONTH);

    PD: aprende a buscar por internet, :D

  123. Melissa dijo:

    Hola de nuevo

    Quisiera saber si existe alguna forma de hacer un contador para mostrar en un jtexfield las veces que se abre un jframe.

    Gracias de antemano por su atencion :-0

  124. Hola Melissa,

    Y perdón a TODOS por no responder antes, pero por cuestiones de trabajo me tocó desplazarme al nororiente Ecuatoriano.

    ¿Cuándo y cómo abres el JFrame? Con la respuesta a ésta pregunta creo que te podríamos ayudar de una mejor manera. Ah también ¿es el JFrame principal?

    Espero tus respuestas

  125. Melissa dijo:

    Te explico, no es el frame principal, tengo otro jframe que tiene un cmpo contraseña y si esta es la correcta me llama al frame en el que quiero el contador.

    Gracias por responder :-)

  126. Melissa,

    Se me ocurre lo siguiente, puedes crearte una propiedad estática en el JFrame (que debe tener el contador) algo así public static int contador, luego le llamas a esa propiedad y la incrementas.

    Ahora necesitas que sea un contador que almacene todas las veces que ingresas a ese JFrame o lo necesitas por sesión (cada vez que se ingresa) o acumulativamente por todas las sesiones?

    Espero que mi respuesta y preguntas sean claras.

    Saludos.

  127. JK dijo:

    hola a todos, soy nueva en esto de la programación. bueno solo queria hacer una pequeña pregunta.

    Estoy programando en netbeans una tareita que está hecha al 80%, lo unico que me falta es lo siguiente.

    Tengo 2 Jframes:

    Uno se llama Usuario y el otro Menu, lo que quiero hacer es enlazarlo, cuando corra el .jar tengo ingresar el password y el login correctamente para poder abrir el menú, caso contrario solo mostrará el mensaje que le he colocado.

    El usuario y el Menu ya estan hechos solo falta hacer eso que no sé!!!!

    Alguna idea?? algun consejo???, porfis heplmeeee.

    Gracias de antemano

  128. Hola JK,

    Recuerda que estás en objetos y cuando quieres crear algo debe utilizar el operado new.

    Cuando ingresen correctamente, el login y pwd, debes crear un objeto de tipo Menu, algo así:
    Menu mnu = new Menu();

    Como es un JFrame, debes mostrarlo, algo así:

    mnu.setVisible(true);

    Y listo, para desaparecer el menu de Login debes decirle un setVisible(flase); y llamar al método doDefaultCloseOperation, pero siempre y cuando le definas el comportamiento de éste método como DISPOSE (este paso con NetBeans es fácil, debes revisar las propiedades del JFrame de Login y ponerle el valor que te indico)

    Saludos y espero tus comentarios.

  129. JK dijo:


    Gracias Joge López

    Hay pensé que era tan facil!!! :)

    Bueno ahi esta el còdigo para que tengan un ejemplo y se guien de ello. Si tienen mejores sugererias, seran bien recibidos.

    Por siaca, esto no se conecta a ninguna base de datos, no estaría mal si ponen algun ejemplo con conecciones a una base de datos mysql o oracle. jijiiji. Espero que les sirva como ayudita.

    Por cierto Jorge, una pequeña duda, en el .jar , cuando corra, ¿el Jframe de Usuario Será lo primero que va a Correr??? o tengo que ponerle algo para que suceda eso??? Que me suguieres?? es la primera vez que voy hacer eso :s

    package Todo;

    import javax.swing.JPasswordField;
    import java.awt.event.*;
    import javax.swing.JFrame;
    /**
    *
    * @author Jessica
    */
    public class Usuario extends javax.swing.JFrame {

    /** Creates new form Usuario */
    public Usuario() {

    initComponents();
    // Construcción de ventana principal
    }

    //
    private void initComponents() {
    lbLogin = new javax.swing.JLabel();
    txtLogin = new javax.swing.JTextField();
    btnIngresar = new javax.swing.JButton();
    etiq3 = new javax.swing.JLabel();
    txtPass = new javax.swing.JPasswordField();
    LblPassword = new javax.swing.JLabel();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    lbLogin.setText(“Login:”);

    btnIngresar.setText(“Ingresar”);
    btnIngresar.addComponentListener(new java.awt.event.ComponentAdapter() {
    });
    btnIngresar.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    btnIngresarActionPerformed(evt);
    }
    });

    LblPassword.setText(“Password:”);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addGap(29, 29, 29)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addComponent(lbLogin)
    .addComponent(LblPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addGap(2, 2, 2)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(layout.createSequentialGroup()
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(btnIngresar))
    .addGroup(layout.createSequentialGroup()
    .addGap(26, 26, 26)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addComponent(txtPass, javax.swing.GroupLayout.DEFAULT_SIZE, 90, Short.MAX_VALUE)
    .addComponent(txtLogin, javax.swing.GroupLayout.DEFAULT_SIZE, 90, Short.MAX_VALUE))))
    .addGap(56, 56, 56))
    .addGroup(layout.createSequentialGroup()
    .addGap(62, 62, 62)
    .addComponent(etiq3, javax.swing.GroupLayout.PREFERRED_SIZE, 129, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addContainerGap(56, Short.MAX_VALUE))
    );
    layout.setVerticalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
    .addGap(39, 39, 39)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(txtLogin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(lbLogin))
    .addGap(40, 40, 40)
    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(txtPass, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addComponent(LblPassword))
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 12, Short.MAX_VALUE)
    .addComponent(etiq3, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(btnIngresar)
    .addGap(35, 35, 35))
    );
    pack();
    }//

    private void btnIngresarActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:

    if (válidos(txtLogin.getText(), txtPass.getText()))
    {
    this.setVisible(false);
    dispose();
    Operaciones menucito = new Operaciones();
    menucito.setVisible(true);
    }

    else
    {etiq3.setText(“Datos no válidos”);

    txtLogin.setText(“”);
    txtPass.setText(“”);
    }

    }

    private boolean válidos(String txtLogin, String txtPass) {
    // aquí se comprueba
    return txtLogin.equals(“jAurora”) && txtPass.equals(“cualquier cosa”);
    }

    public static void main(String args[]) {

    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new Usuario().setVisible(true);
    }
    });
    }

    // Variables declaration – do not modify
    private javax.swing.JLabel LblPassword;
    private javax.swing.JButton btnIngresar;
    private javax.swing.JLabel etiq3;
    private javax.swing.JLabel lbLogin;
    private javax.swing.JTextField txtLogin;
    private javax.swing.JPasswordField txtPass;
    // End of variables declaration

    }

  130. Hola JK,

    El definir cuál es la clase que se ejecuta cuando arranca la aplicación, se puede configurar en el archivo de manifiesto que contienen todos los archivos .jar.

    En NetBeas, cuando le das clic al botón ejecutar y sino tienes definido cuál es la clase principal te pregunta que clase es la que deseas ejecutar y es la que se ejecutará cuando le des doble clic sobre el archivo jar.

    ¿Cuál de tus clases se ejecuta cuando le das clic en el botón ejecutar?

    Saludos desde Ecuador

  131. Melissa dijo:

    Mira Jorge tengo el siguiente problema.
    Guardo el valor en la base de datos, y la recupero con un objeto Resultset pero este objeto no lo puedo guardar en otra variable para sumarlo, y necesito que el valor que traiga de la base de datos sea el ultimo que se guardo.

  132. Hola Melissa,

    Qué error te lanza? Porque no lo puedes guardar en otro variable. Deberías hacer algo así:

    int contador = 0;

    contador = rs.getInt(1);

    rs es un objeto tipo ResulSet y el uno es el índice de la columna de la cual quiero consultar.

    Coméntame algo del error que te lanza.

    Saludos

  133. Melissa dijo:

    Hola

    Este es el codigo que tengo.

    try
    {

    stm = con.createStatement();
    ResultSet rs=stm.executeQuery(“Select ID from OrderEntry”);
    while(rs.last())
    {
    int contador=0;
    contador=rs.getInt(“ID”);
    int contando= contador+1;
    txtcotiza.setText(contando +” “);
    }
    }
    catch(Exception e)
    {
    JOptionPane.showMessageDialog(null, e.getMessage());
    }

    Y lo que me tira es la excepcion y el mensaje que sale es ResultSet set type is TYPE_FORWARD_ONLY.

    Saludos.

  134. Melissa dijo:

    Hola Jorge tienes razon, ya he solucionado ese problemilla ahora tengo otra consulta mi programa debe ser capaz de grabar informacion en bases de datos, y si me guarda informacion pero solo de una tabla a la vez y yo necesito que grabe en 2 tablas a la vez me sale este error [Microsoft][ODBC SQL Server Driver][SQL Server]cannot insert explicit Values for Identity column int table ‘OrderEntry’when IDENTITY_INSERT set to off. se que en SQL solo una tabla puede tener IDENTITY_INSERT ¿de que manera puedo insertar datos en las 2 tablas a la vez?

    Saludos :-)

  135. Melissa dijo:

    Buen dia

    Ya solucione el problema anterior, pero ahora tengo otro problema, veras en mi base de datos tengo 2 campos tipo money y no puedo ingresarle valores desde mi aplicacion porque los valores que obtengo de la aplicacion son de tipo float ¿como puedo hacer la conversion de tipo float a money?

    Saludos :-)

  136. Hola.

    Tengo un pequeño problema con una aplicación con base de datos. He creado un formulario Principal donde llamo al método iniciar() que lo contiene la clase Conexion y sirver para conectarte a la base de datos, además este formulario tiene un JDesktopPane, ahí puedo cargar los formularios para trabajar con los datos. Por ahora, solo tengo dos formularios Clientes y Empresas.

    Yo sólamente utilizo una clase Conexion para ambos pasandole como parametro a las demas clases la conexion de esta, de la siguiente manera.

    Clase Clientes————–

    Conexion c;

    public Clientes (Conexion c) throws SQLException {
    this.c = c;

    Esto ultimo es el constructor de la clase Clientes, de manera que tengo un método en la Clase conexión para conectarme y otro para hacer consultas. En la clase Clientes o Empresa, lo único que tengo que hacer es llamar al método que hace la consulta en la clase conexion y pasarle como parametro el nombre de la tabla.

    public void consulta(String tabla) throws SQLException {
    rs = stmt.executeQuery(“select * from “+tabla);
    }

    De esta forma no tengo ningun problema para ver los datos. Donde tengo el problema es cuando le doy a los dos formularios a la vez, siempre me va a funcionar el último que carge, porque es quien le ha mandado la ultima consulta.

    ¿ Necesitaría hacer dos Statemment uno para cada formulario o una conexion ?.

    Creo que lo adecuado para esto sería utilizar la misma conexion para todos, pero diferentes consultas. Funciona bién salvo este pequeño problema que no se como solucionarlo.

  137. arturo dijo:

    JORGGEEE!!!!!! como vai ???
    mira tengo una pregunta:
    1 – ¿Como puedo almacenar imagenes en una BD?(Trabajo con PostgreSQL)
    2 – ¿Como puedo hacer que el usuario pueda elegir la imagen ke desea ?

    Aclaracion de la 2(segunda) pregunta:
    Por ejemplo cargo una determinada pelicula y el usuario desea colocar una detrminada imagen (obiamente interactuando con el sistema desarrollando).Algo asi como colocar un combo pero ke le dee permiso de acceder a distintas carpetas del sistema operativo.

    Espero una respuesta favorable :)

  138. Hola arturo,

    Para la primera pregunta, no he trabajado con Postgress, pero generalmente y para almacenar imagenes y otros tipos de archivos en una BD, debes buscar campos que te permita almacenar secuencias de Bytes.

    Y para la segunda: JFileChooser si necesitas acceder a los directorios de la computadora. Obtienes la ruta y usas la clase File para trabajar.

    Saludos

  139. sofia dijo:

    Hola jorge,

    mi pregunta no va mucho con el contenido del post pero igual te la ago como puedo capturar una foto con la webcam desde java.

    gracias de antemano.

  140. arturo dijo:

    hola jorge como vai…..
    mira me surgio un problem..

    cuando capturo la direccion de un determinado archivo me esta tirando error porke la direccion ke captura desde el JFileChoose el asi –> C:\imagene\close.gif

    ahora el problema son los caracteres ” \ ” como los puedo reemplazar estos .. Por los caracteres ” / ” .

  141. arturo dijo:

    en realidad esta es la funcion ke seleccionara el archivo:

    jfceditor.getSelectedFile();
    String direccion=String.valueOf(jfceditor.getSelectedFile()).toString().replace(‘\\’,’/’);
    Icon img=new ImageIcon(getClass().getResource(direccion));
    //ca.setIcon(img);

  142. arturo dijo:

    en realidad esta es la funcion ke seleccionara el archivo:

    jfceditor.getSelectedFile();
    String direccion=String.valueOf(jfceditor.getSelectedFile()).toString().replace(‘\\’,’/’);
    Icon img=new ImageIcon(getClass().getResource(direccion));
    ca.setIcon(img);

    ke luego coloco en un JLabel , ke tiene como variable ” ca ” , y aqui le inserto la imagen.

  143. arturo dijo:

    jorge ahi te envie 3 imagenes mas el comentario a tu correo electronico ,sobre lo ke me esta pasando con la clase de JFileChoose.

    Por favor si me puedews responder ..GRACIAS

  144. JK dijo:

    Hey, que tal, bueno aqui molestando de nuevo jijijiji, ya pasé la fase de programar en en cliente servidor, ahora toy aprendiendo a programar en aplicaciones web en net beans, Estoy que me mareo un poco con los servlets y los jsp :(

    La duda es la siguiente:

    Tengo que Enviar un arreglo y mostrarlo en un jsp.

    Esto es mi formulario en index.jsp, y por cada operacion muestro un resultado
    Nombre: ___
    A/V: (alquiler/venta) radio
    Numero de dias: (de 1 a 5) combobox
    1-2=0%
    3-4=5%
    5-10=10%
    Socion: Si/No radio
    Tipo: A V
    Drama 1 2
    Comedia 3 5
    Ficción 2 3.5
    Terror 2.5 4.0

    Si es socio, 15% de descuento

    Calcular (boton)

    bueno ya está listo el index.jsp, el action=”conectar.html”

    la duda es: como rayos hago para que aparte de capturar los datos, pueda realizar toda la logica en un servlet y mostrar los resultados en un JSP.
    Segun sé que en el metodo processRequest se hacen los calculos.

    La pagina final debe de recibir los parametros de la manera String[] respuesta=request.getAttribute(respuesta);

    Solo denme un ejemploooo, please para tener la idea!!!

  145. arturo dijo:

    jorge ahi te envie 3 imagenes mas el comentario a tu correo electronico ,sobre lo ke me esta pasando con la clase de JFileChoose.

    Por favor si me puedews responder ..GRACIAS..

  146. carlos dijo:

    oye jorge con la novedad de que ya intente poner la imagen de fondo en un frame como lo muestras tu pero tengo un error simplemente a la hora de cargar el programa no me muestra nada no se cual es mi problema y si me pudieras ayudar te lo agradeceria

  147. arturo dijo:

    jorge…. cuando trabajo con la clase JFileChooser (ke no he entendido hasta ahora), nsecito mostrar l aimagen en el JDialog. Pero despues esa imagen la debo guardar en la BD.Ahora ke komponente puedo utilizar para cargar luego en la BD. un Jlabel , Jbuton (estos 2 componentes ke te mencione no se pueden).

    ¿Ke otros componentes aceptan ke se les cargue imagen?

    un ejemplo:

    componente.setIcon(img);

  148. hola quisiera una ayuda para poder grabar datos desde netbeans a sql estoy llevando lenguaje de net
    por ejemplo tengo una tabla hecha en sql padre ,digamos que se llame así y que sus campos sean codigo,nombre ,apellido ,sexo,descripcion y numero de hijos
    y que en el netbeans en el formulario me grabe los datos que introduzca en el SQL..en la pagina que hice..en netbeans se intorduce datos para el nombre en txt, en apellidos y numero de hijos text…sexo option button y descripcion multi line input… y este codigo en el html que he hecho grabar.html y en este he puesto este código el cual no me guarda en el SQL….y eso que he hecho el ODBC…este es mi codigo

    import java.io.*;
    import java.net.*;

    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;

    /**
    *
    * @author ies
    * @version
    */
    public class grabar extends HttpServlet {
    Connection cn=null;

    /** Processes requests for both HTTP GET and POST methods.
    * @param request servlet request
    * @param response servlet response
    */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType(“text/html;charset=UTF-8″);
    PrintWriter out = response.getWriter();

    String nom=request.getParameter(“txtnombre”);
    String ape=request.getParameter(“txtapellido”);
    String sex=request.getParameter(“rbsexo”);
    String des=request.getParameter(“multides”);
    String num=request.getParameter(“txtnum”);

    out.println(“”);
    out.println(“”);
    out.println(“Grabar”);
    out.println(“”);
    out.println(“”);

    try {
    Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
    cn=DriverManager.getConnection(“jdbc:odbc:tabla”,”sa”,””);
    Statement stmt;
    stmt=cn.createStatement();

    int rs=stmt.executeUpdate(“Insert into padre values(‘”+ nom+”‘,'”+ ape +”‘,'”+ sex+”‘,'”+ des +”‘,'”+ num +”‘)”);

    } catch(SQLException e){ out.println(“error”);} catch (ClassNotFoundException e){}

    out.println(“Servlet grabar at ” + request.getContextPath () + “”);

    out.println(“”);

    out.println(“”);

    out.close();
    }

    ESPERO SU AYUDA ….GRACIAS
    CUALQUIER RESPUESTA ESCRIBAN A roydrums19@yahoo.es

  149. arturo dijo:

    y sigo esperando……………………………………………………………………………………………………………………………………………. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  150. Jc dijo:

    Hola,tengo un problema haciendo un evento para un juego y quisiera saber como o que evento necesito para mover un objeto o componente donde el usuario de un clic,es decir,si dio clic en la esquina izqquierda inferior,el componente debe moverse hacia ese sitio….gracias.

  151. Perla dijo:

    Hola, tengo un problema, estoy utilizando java con Netbeans 5.5.1, quiero que al presionar un botón se reproduzca un archivo de sonido que yo le especifique, pero no lo consigo, he probado con distintos códigos usando java.awt, java.sound y java.jmf, pero simplemente no se reproducen…es algo urgente porque tengo que entregar este trabajo mañana…no sé qué hago mal?? Muchas gracias, si pudieras comunicarte con un correo en cuanto puedas sería genial, gracias de nuevo

  152. arturo,

    Estoy tratando de hacer algo parecido a lo que necesitas, pero no he tenido mucho tiempo para terminarlo y poderlo publicar. Lo siento, pero estoy algo corto de tiempo por ahora.

    Espero terminar mi ejemplo muy pronto.

    Saludos y gracias por la espera

  153. Perla dijo:

    Ya he revisado las guías de la API Sound y tampoco, al parecer el archivo se reproduce sin problemas…pero no se eschucha nada, habrá que configurar algo en java o con Netbeans? acabé de probar con JCreator y también parece reproducirlo, sin embargo no se escucha…he revisado las propiedades de sonido de mi computadora y todo parece estar bien. Espero que aún pueda lograrlo. Gracias de todas formas

  154. Alfonso dijo:

    Buenos Días Jorge:

    Me gustaría que me ayudaras con un buen manual para aprender el uso de frames internos y otro manual sobre la forma correcta de crear interfaces gráficas, es decir, si hay algún estándar sobre como organizar las ventanas en una aplicación.

  155. Hola Alonso,

    Te comento, que para empezar podrías revisar el tutor Java de Sun, aquí puedes encontrar el tema de los JInternalFrame:

    http://java.sun.com/docs/books/tutorial/uiswing/components/internalframe.html

    Para mi es de mucha ayuda.

    Y te recomendaría que para trabajar con Swing te recomiendo que revises: Swing Application Framework API, hace algún tiempo escribí una entrada aquí:

    http://cafelojano.wordpress.com/2008/01/14/swing-application-framework-api-jsr-296/

    Espero que sea de tú ayuda.

    Saludos, desde Ecuador

  156. arturo dijo:

    ke hace jorgito.. disculpa por mi impasiencia . ahora voy a tener mas pasiencia debido al tema del JFileChooser.

    Ahora te pregunto una cosa : nesecito descargar una clase ( java.lang.ClassLoader.defineClass1 ) para levantar un reporte grafico.. Y esa clase lo debo colocar en el CLASSPATH.Ahora ¿En donde esta el CLASSPATH ?… perdon por mi ignorancia… desde ya muchas gracias

  157. Hola arturo,

    Sabes que con el tema del JFileChooser, puedes revisar aquí:

    http://java.sun.com/docs/books/tutorial/ui/features/compWin.html

    Para que tengas una idea de cómo trabaja.

    Con el tema del classpath, el CLASSPATH es una variable de entorno que debes configurar así:

    Clic derecho sobre MiPC, luego seleccionas la opción de Propiedades, luego la pestaña Avanzadas, luego el botón Variables de entorno y creas la variable dando clic en el botón Nuevo que se encuentra abajo de Variables del sistema. Le pones de nombre CLASSPATH y en el valor la ruta donde se encuentra tú clase.

    Espero que te ayude.

    Saludos desde Ecuador.

  158. arturo dijo:

    jorge como va….. mira , realice un reporte con el ireport y es un reporte con diseño grafico (una torta 3D), y esta bien creado porke en el ireport funciona perfectamente,
    ahora cuando kiero levantar el reporte desde el netbenas 5.5.1 me arroja una exepcion ke es la siguiente:

    Exception in thread “AWT-EventQueue-0″ java.lang.NoClassDefFoundError: Lorg/jfree/chart/plot/PlotOrientation;
    at java.lang.Class.getDeclaredFields0(Native Method)

    me podes dar una mano por favor…….. nose ke es lo ke esta pasando , me deberia levantar el reporte perfectamente.

    gracias de antemano……..!!!!!!!!!!!!!!!!!!!!!!

  159. arturo dijo:

    jorge como estas !! mira yo tampoco se cual es el jar espesifico , pero ya arregle el problema , ¿como?.. pues le coloke todos los jar del lib del irepot….

    ahora te realizo otra pregunta … como ejecuto un applet .. ya se ke es a traves de mi navegador … pero como hago para visualizar mi ventana desde el navegador

  160. Hola arturo,

    No entiendo muy bien la pregunta del applet, pero lo que entiendo es que quieres ejecutar tú aplicación desde el navegador (dando clic en un link se ejecuta la aplicación) es así? Si es así debes leer algo sobre Java Web Start.

    Espero que sea de tú ayuda.

    Saludos

  161. arturo dijo:

    como va jorge…. la pregunta del applet era la siguiente.

    ¿como puedo visualizar mi aplicacion, o mejor dicho ejecutar y ver mi aplicacion desde un navegador?

  162. Hola Javier,

    Busca algo sobre JFreeChart [http://www.jfree.org/jfreechart/] que te puede ayudar, también podrías ver algo de Google Chart API [http://code.google.com/apis/chart/]

    Espero que sean de tú ayuda.

    Saludos desde Loja, Ecuador.

  163. HiPoTeR dijo:

    Hola Jorge. Estoy intentando mostrar un jDialog desde un JinternalFrame que está contenido en un JDesktopPane. Estoy utilizando netbeans y este cuando te generas un JDialog te inserta el siguiente código.

    public class Vendedores extends javax.swing.JDialog {

    public Vendedores(java.awt.Frame parent, boolean modal) {
    super(parent, modal);
    initComponents();
    }

    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new Vendedores(new javax.swing.JFrame(), true).setVisible(true);
    }
    });
    }

    Desde mi JInternalFrame en un JButton hago un evento para mostrarlo tal que:

    private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) {
    Vendedores vend = new Vendedores(this, true);
    }

    Me parece que me está dando error porque estoy poniendo a el parametro java.awt.Frame parent.
    This que es un JInternalFrame, me da error y nose porque es.

  164. Hola HiPoTeR,

    Te comento que me encontré con lo siguiente, en éste link [http://java.sun.com/docs/books/tutorial/uiswing/components/internalframe.html]
    y que de seguro te ayudará:

    “Dialogs that are internal frames should be implemented using JOptionPane or JInternalFrame, not JDialog.
    To create a simple dialog, you can use the JOptionPane showInternalXxxDialog methods…” y tiene otro link en donde se explica como hacer las ventanas de dialogo:

    [http://java.sun.com/docs/books/tutorial/uiswing/components/dialog.html]

    Espero que sea de tú ayuda (aunque sea tarde)

    Saludos desde Loja, Ecuador!

  165. Eduardo dijo:

    Exception in thread “AWT-EventQueue-0″ java.lang.NullPointerException
    at javax.swing.ImageIcon.(ImageIcon.java:138)
    at los.gui.PnlFondo.paintComponent(PnlFondo.java:30)
    at javax.swing.JComponent.paint(JComponent.java:1027)
    at javax.swing.JComponent.paintChildren(JComponent.java:864)
    at javax.swing.JComponent.paint(JComponent.java:1036)

    public void paintComponent(Graphics g){
    Dimension tamanio = getSize();
    ImageIcon imagenFondo = new ImageIcon( getClass().getResource(“/los/imagen/DSC00857″));
    g.drawImage(imagenFondo.getImage(), tamanio.width, tamanio.height,100, 100, null);
    setOpaque(false);
    super.paintComponent(g);
    }

    fijate que estaba probando lo del fondo pero no me muestra nada , ademas me tira error en paintComponent que cres que me esta pasando

  166. Eduardo dijo:

    deplano lo borre, pero jpg no era asi ERA “JPG” por que en minusculas no me funciono, GRACIAS no me habia fijado en la exentencion,

    otra pregunta

    Ala hora de hacer esto todos elventos del lo botones y demas, ban estar en el Jpanel , pero yo quiero usarlas en Jframe, tengo un Jmenu bar, que me va hacer que me aparescan y desparescan varias cosas de la Interfaz, gracias de antemano

  167. Hola Eduardo,

    mmmm, no he realizado prueba alguna para ubicar algún elemento directamente dentro de un JFrame, pero en teoría no debería haber problema.

    Te comento que inclusive puedes utilizar el método paintComponent directamente en un JFrame.

    Podrías hacer una prueba rápida trabajando con el JPanel y ubicando elementos de GUI directamente en el JFrame y nos das a conocer los resultados. Trataré de hacer alguna prueba.

    Saludos.

  168. Eduardo,

    Te comento que hice una prueba rápida y si te fijas en el JFrame que utilizo tengo como Layout un BorderLayout y el JPanel se ubica en la posición central y quedan libres las otras posiciones en donde puedo ubicar otros elementos. Puedes cambiar el layout y ubicar el JPanel como tú quieras junto con los otros componentes.

    Saludos

  169. Aitor dijo:

    Hola Jorge, ante todo felicitarte, que estas hecho un maquina, y ayudas a mucha gente. Soy de la Universidad Politecnica de Cartagena, España, y parte de mi PFC es en Java.
    Querría saber si hay alguna forma de al ejecutar una aplicación de office, mediante exec, por ejemplo se abra en un JInternal frame que creo en primer lugar… o simplemente que el contenido se muestre en un JFrame, eso es todo, GRACIAS

  170. Saludos…
    quiero felicitarte por la disposicion que tienes al responder a todo mundo.

    cambiando de tema, probe el proyecto de Jframimage, pero tengo un problema, me manda una exception cuando cambio el no,bre de la imagen. con la imagen que tres funciona correctamnete, pero copio otra en el paquete de imagenes = jpg, y ya no la carga…. madra exception.
    ***************************************

    Exception in thread “AWT-EventQueue-0″ java.lang.NullPointerException
    at javax.swing.ImageIcon.(ImageIcon.java:138)
    at los.gui.PnlFondo.paintComponent(PnlFondo.java:31)
    at javax.swing.JComponent.paint(JComponent.java:1022)
    at javax.swing.JComponent.paintChildren(JComponent.java:859)
    at javax.swing.JComponent.paint(JComponent.java:1031)
    at javax.swing.JComponent.paintChildren(JComponent.java:859)
    at javax.swing.JComponent.paint(JComponent.java:1031)
    at javax.swing.JLayeredPane.paint(JLayeredPane.java:564)
    at javax.swing.JComponent.paintChildren(JComponent.java:859)
    at javax.swing.JComponent.paintToOffscreen(JComponent.java:5111)
    at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:285)
    at javax.swing.RepaintManager.paint(RepaintManager.java:1128)
    at javax.swing.JComponent.paint(JComponent.java:1008)
    at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
    at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
    at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
    at java.awt.Container.paint(Container.java:1797)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:734)
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:679)
    at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:659)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
    ***************************************

    en vez de que se ve ala imagen de fondo…. como que hace un screenshoot o como se escriva,, por que me captura la imagen del netbeans tomandola como imagen de fondo del frame :(

  171. saludos otra vez.
    como soy nuevo en java,ya me tarde mucho tratando de resolbver un problema que no he podido encontrar solucion. las soluciones que he encontrado en la web no me funcionan, espero me puedas ayudar.

    lo que pasa esque tengo dos Jframes. Jlista(que contiene un jtable que se llena con datos de una tabla) Jdetalle que muestre en controles la informacion a detalle del registro que se selecciona en el Jtable del Jframe “JLista.”

    funciona asi.
    cuando me posiciono en un registro del jtable,obtengo el id de la tabla. cuando le doy click derecho del mouse y escojo detalle, mando llamara al JDetalle, y en sus controles (jtext,jcombo, etc) se muestra al informacion.
    la primera vez funciona bien. pero cuando me paso a la JLista,y eligo otro registro del JTable, el Jdetalle se debe de actualizar automaticamente.pero eso no pasa.

    estube rebizando los funciones y las variables y todo esta bien.

    tengo un metodo que se llama llenar()
    en el que le paso las variables y las mete a los controles….
    jtext1.settext(varieble1);
    jtext2.settext(varieble2);
    variable 1 y variable2 tienen los valores correctos del registro que eligo en el jtable…se actualizan perfectamente cada que escojo otra columna o celda en el Jtable, pero los controles graficos nunca se repintan…
    que necesito para que esto se haga…
    :( :( :( :(

  172. Hola Salvador,

    Con respecto a la primera inquietud sobre la imagen de fondo, si trabajas con NetBeans te recomiendo que le hagas un Clean & build… sobre el proyecto con el que trabajas. Revisa la extensión de los archivos.

    Para la segunda pregunta, te diría que uses el método repaint() o si trabajas con JPanel el método updateUI.

    Me dejas conocer tus avances.

    Saludos desde Ecuador

  173. Saludos…
    probe lo del repaint… y sigue =, o como lo debo hacer????

    JFRAMEDETALLE.
    private void Desplegar()
    {
    jT_Id.setText(String.valueOf(IdTable));
    jT_Id.repaint();
    jT_NombreEdo.setText(Nombre);
    jT_NombreEdo.repaint();
    }
    no pasa nada :(
    ****************************
    con respecto a la imagen. limpie y volvi a compilar. y em sigue andando la exception.
    pero funciona si le dejo la imagen que tra en tu ejemplo, la cambio y manda el error….

    saludos y gracias por la atencion.

  174. Hola Salvador,

    Te comento que el método repaint no debes aplicarlo por componente sino una sola vez algo así:
    private void Desplegar()
    {
    jT_Id.setText(String.valueOf(IdTable));
    jT_NombreEdo.setText(Nombre);
    repaint();
    }

    Con las imágenes revisa las extensiones de los archivos, recuerda que Java es sensible a mayúsculas y minúsculas.

    Espero que sea de tú ayuda, saludos desde Ecuador.

  175. que tal gracias.
    te comento que lo sigue haciendo. tal vez algo estoy haciendo mal…
    te comento que el jframeDetalle no tiene el foco… lo tiene el Jlista, en Jlista cuando escojo un registro obtengo el ID y mando a llamar a un metodo Inivars() del JframeDetalle.
    objetoJframedetalle.Inivars(idtable);

    en inivars de JframeDetalle,inicializo las variables jalando los campos de la tabla que voya mostrar.. todo se hace bien… y despues amndo a llamr a Desplegar();
    este es un metodo privado del JframeDetalle… :(

    o tengo que redefinir el repaint()?????
    gracias por tu ayuda…

  176. Salvador,

    mmm Desplegar es un método privado, te propongo lo siguiente, porque no haces que Desplegar sea público y cuando escoges el registro le haces algo como objetoJframedetalle.Desplegar() y nos podemos olvidar del repaint que en éste caso no tiene nada que ver.

    Haz lo que te digo y me conversas tus avances.

    Una pregunta final, en que momento llamas al método Desplegar?

    Saludos desde Loja.

  177. saludos….
    sigue sin repintar mi Jframe detalle. :( :( :( :( :( :( :(

    ya no se que hacer…
    nunca se actualizan los controles… las variables bien, pero los controles no…
    crees que tenga algo que ver con el foco…

    saludos y gracias…

  178. Salvador,

    No creo que tenga que ver con el foco, sino cuando llamas al método Desplegar y si pruebas llamando al método pack, algo así: objetoJframedetalle.pack();

    O si puedes envía tú proyecto a mi dirección de correo, en la sección de contactos puedes ver mi dirección.

    Saludos y ánimo que debe ser algo pequeño por ahí, trataré de hacer un ejemplo para ayudarte.

  179. Aitor dijo:

    Hola Jorge, ya habia provado el jintegra para poder visualizar los documentos de office, y lo tengo todo instalado, lo unico que trabajo con kawa, porque me resulta lo mas sencillo, y el problema esta en que no me reconoce los paquetes que crea el jintegra, e revisado el classpath, e añadido el directorio de las clases al de los paquetes, lo e añadido a las de las clases de java.. y nada no se que hacer, no se si te a pasado algo parecido, ¿que me recomiendas que haga?

  180. Hola Aitor,

    Intenta esto dentro de la carpeta de instalación del JDK, encontrarás la siguiente ruta: jre/lib/ext dentro del directorio ext copia el o los paquetes de jintegra.

    Espero que te ayude, hace mucho tiempo que trabajé con kawa vaya recuerdos, luego me pasé a UltraEdit y ahora NetBeans.

  181. HiPoTeR dijo:

    Hola de nuevo, en esta ocasión estoy haciendo una aplicación que contiene un jDesktopPane, dentro de ese desktop muestro jInternalFrame. Pero para que tenga un mejor aspecto he tenido que insertar un jPanel dentro del jDesktopPanel para así tener un jLayout dentro del jPanel que me ordene las ventanas, dependiendo de Layout que le especifique así se situan los jInternalFrame. No estoy seguro si este sistema es el mas adecuado.
    Ya que de la forma que lo estoy haciendo ahora, cada vez que minimizo una ventana, me genera un error:

    Exception in thread “AWT-EventQueue-0″ java.lang.NullPointerException
    at javax.swing.JDesktopPane.getNextFrame
    (JDesktopPane.java:381)
    etc… etc…

    ¿ Existe otra forma de ordenador los JinternalFrames dentro de un jDesktopPane ?

  182. aap dijo:

    Hola Jorge , he visto poco de su blog pero me parece super bueno, me gustaria que me ayudaran con un tema del que no he podido conseguir mucha informaciòn, es el uso del Motor de síntesis de voz FESTIVAL y los API’s existentes para llamarlo mediante Java, debo hacer un proyecto que requiere manejo de voz y es lo q me han sugerido, aun estoy consultando y es poco lo que se de JAVA.
    Estoy desesperada…
    Gracias

  183. carlos dijo:

    ola pata estudia ing informatica veoq ers buen pata y ayudas espero qm ayudes ps mira e buscado varios metodos para salir de applet pero ninguno funciona en el applet keria saber si tu no sabes ps muy agredecido bye cdtm pata

  184. que ondas Amigo…
    te comento que ya me funciona el refresca…
    grax or la ayuda y los tips…
    ahora me encuentro con otro contratiempo…
    necesito abrir una aplicacion de windows especificamente, pero no la abre…
    esty haciendo algo mal…

    try {
    ejecutar(“Excel.exe”, “My Archivo.xls”);
    }catch (Exception err) { err.printStackTrace(); }

    public void executar(String Aplicacion, String argumento)
    {
    try{
    Runtime.getRuntime().exec(new String[]{Aplicacion,argumento});
    }catch(Exception ex){}
    }

    el problema es que nunca me abre el excel…..

  185. Hola Salvador,

    Me parece que tienes un error con el segundo parámetro, el archivo. Debes especificar la ruta completa y no solamente el nombre del archivo.

    Deberías hacer algo así: c:\\xls\\MyArchivo.xls. Debes ubicar 2 backslash para que Java los interprete correctamente.

    Hace algunas pruebas y me tienes al tanto.

    Saludos.

  186. dallas dijo:

    apenas estamosimplementandojava en la universidad por que antes manejabamos oto lenguaje pero quisiera saber como podria cambiarle el color delfondo del Jframe

  187. Linda dijo:

    hola quisiera saber si hay alguna forma de dividir una imagen en varios pedazos en java es que en la U me pidieron un rompe cabezas que el usuario desida cuantas piezas va ser y no se como hacer para dividir las pizas por codigo

  188. Linda dijo:

    a parte las piezas no deben ser del mismo tama ño y forma les pido ayuda porfa es que un proyecto que nos dieron un mes de plazo y ya me quedan menos de 15 dias

  189. arturo dijo:

    hola jorge… tanto tiempo… mira tengo un problema … no puedo conectar a la DB desde m aplicacion JSP.. el problema nose.. es mas consulte con un programador(sabe bastante) y no me da una solucion. me podrias ayudar por favor.

    Este es el error:

    type Exception report

    message

    descriptionThe server encountered an internal error () that prevented it from fulfilling this request.

    exception
    org.apache.jasper.JasperException: PWC6033: Unable to compile class for JSP

    PWC6199: Generated servlet error:
    [javac] C:\Sun\SDK\domains\domain1\generated\jsp\j2ee-modules\primera_aplicacion\org\apache\jsp\control_jsp.java:67: illegal start of expression
    [javac] public conexion_ora con=new conexion_ora(“postgres”,”BASE”,”127.0.0.1″,”PWD”);
    [javac] ^
    [javac] 1 error

  190. holaa!!

    tenia la misma duda que los primeros..

    he leido parte de los comentarios y las respuestas.

    Muchas gracias!! solo me quedaba insertar las imagenes para terminar la aplicacion ;)

    gracias.

  191. Hola Arturo,

    Tanto tiempo como tú bien dices. Extraño ¿cómo invocas a la clase conexion_ora? Lo haces a través de llamadas a JavaBeans o con scriptling?

    El problema en definitiva se presenta cuando el servidor trata de compilar el JSP. Proceso que se da cuando se carga por primera vez la dicho JSP.

    Responde a mis preguntas y te trato de ayudar.

    Saludos desde Loja, Ecuador

  192. pedro dijo:

    Deveras que eh visto el codigo pero me sale error cuando coloco initComponents() y ademas
    me sale error en el metodo super(),
    alguien me podria ayudar
    Gracias de antemano.

  193. pedro dijo:

    Ah Ok jorge porque yo
    pensaba implementarlo en eclipse donde trabajamos con java Beans.
    ¿Como podria poner una imagen de fondo en una GUI desde Eclipse?
    Si lo supieras me ayudarias un monton
    Gracias.

  194. arturo dijo:

    public conexion_ora con=new conexion_ora(“127.0.0.1″,”5432″,”upalala”,”postgres”,”lights”);

    como te daras cuenta , he realizado una clase “conexion_ora”, y bueno , despues paso los parametros que corresponden.
    Si kieres te paso la clase de conexion a tu correo, solo avisame y lo mando a tu correo.

  195. arturo dijo:

    jorge.. como va… mira tengo otro problema en J2SE, cuando kreo el .exe de mi sistema; la cosa es asi …….

    si el sistema tiene imagenes me crea el ejecutable , pero no me levanta nada, el problema es de las imagenes formatos ke admite java son (png,jpg y gif).

    si el sistema no tiene imagenes crea el ejecutable y anda de lujo .

    ¿Por ke pasa esto?

    ¿me podés ayudar?……GRACIAS.. espero una respuesta pronta.. toy medio apurado ……. ;)

  196. Hola arturo,

    Te comento que no he trabajado creando .exe de programas Java, debido a que así se pierde lo de multiplataforma. Porque no te haces un instalador con Izpack por ejemplo y así no necesitas de un .exe sino de un .jar que el propio NetBeans te lo hace sin problemas.

    Saludos

  197. arturo dijo:

    beno te comento ke para hacer un .exe nesecito crear primero el .jar, y cuando ejecuto el .jar ke se aloja en la carpeta dist de nuestro proyecto , tampoco funcina (si el sistema tiene imagenes), y si el sistema no tiene imagenes , si funciona.

    En definitiva mi problema de las imagenes persiste. Si me puedes dar una mano estare agracdecido . gracias (h)

  198. Hola arturo,

    Haz revisado o modificado el archivo de manifiesto que está dentro del jar? Revisa ese archivo y fíjate que contenga si hace referencia a la carpeta en donde se encuentran las imágenes.

    Mira en las propiedades del proyecto y fíjate si si existe algo sobre la carpeta de imágenes.

    Me tienes al tanto.

  199. arturo dijo:

    el archivo de manisiesto es el txt ke esta dentro de la carpeta dist ?, ke tengo ke modificar ? ya ejecute a traves del cmd aver si funcionaba y tampoco.

  200. Hola arturo,

    No el archivo de manifiesto está dentro del archivo .jar se llama manifest.mf. Recuerda que un archivo .jar está compreso y lo puedes descomprimir con cualquier herramienta como el winrar o winzip. También lo puedes ver dentro de NetBeans, vas a la pestaña que está a la derecha de la pestaña de los proyectos, creo que se llama File System, buscas dentro de tu proyecto y lo puedes ver dando doble clic sobre él archivo.

    Intentaste ver en las propiedades del proyecto? Aquí debes ver conste la ruta del directorio de imágenes debes verla en la primera opción Sources.

    También puedes revisar dentro de la carpeta dist debe existir una carpeta que se llame lib mira si ahí consta la carpeta que contiene las imágenes

    Revisa y me comentas

  201. arturo dijo:

    como estas jorge….. mira revise la carpeta dist, no se encontraba la carpeta con las imagenes correspodisntes , entonces lo que hice fue copiar la carpeta de imagenes que estaba dentro del src, y luego cree otra ves el .exe , Pero no funciona….. !!

    Ademas las imagenes las coloco como lo enseñaste por aca, es decir , creo un pakete llamado imagenes y este paquete imagenes se crea dentro del SRC…………………… :(

  202. HiPoTeR dijo:

    Hola a todos/as, se me está planteando el siguiente problema:

    Tengo un Frame el cual contiene un jInternalFrame. Este último llama a un jDialog, en el JDialog tengo un botón con su correspondiente evento. En este evento estoy intentando modificar el texto de una caja de texto que está contenida en el jInternalFrame, sin exito. He conseguido pasar información mediante métodos parametricazados, pero a la hora de hacer algo como es modificar el texto texto.setText(“nose”); no funicona.

    Salu2.

  203. HiPoTeR,

    Te comento lo que haría, al JDialog, le pasaría una instación del JInternalFrame, luego desde el botón del JDialog, llamaría al método setText del JTextField , algo así, suponiendo que mi variable del tipo JInternalFrame se llame jinFrame y el cuadro de texto se llame texto, debería ubicar algo así: jinFrame.texto.setText(“lo que sea”);

    Espero que te ayude y que sea claro.

    Saludos

    • carlos dijo:

      hola oye tengo una duda sobre como hacerle para graficar una linea con en java pero con retraso de tiempo es decir que sea como una animacion y q la linea se

  204. HiPoTeR dijo:

    Jorge, te comento que así es justo como lo estoy haciendo, pero no funciona, no me genera ninguna excepción. El código es el siguiente:

    boton del internal frame:

    jDialog jd = new jDialog(p,true);
    jd.setVisible(true);
    jd.setLocationRelativeTo(p);

    boton donde quiero hacer lo del texto:

    inf = new InternalFrame();
    String texto = caja_texto.getText();
    caja_texto2.setText(texto);
    inf.cajatexto.setText(texto);

    caja_texto2 está en el mismo jDialog ahí si lo cambia, pero en el internal frame no.

  205. HiPoTeR,

    Cuando dices inf = new InternalFrame(); estás creando otro InternalFrame en el botón del JDialog? Si es así estas haciendo mal las cosas, debes enviar al JDialog la instancia actual del InternalFrame y no crear uno nuevo.

    Trata de hacer lo que te digo y me consultas.

  206. HiPoTeR dijo:

    Jorge, he quitado inf = new InternalFrame() del boton del jdialog, ahora me genera una excepción:

    Exception occurred during event dispatching:
    java.lang.NullPointerException
    at desktop.jDialog.jButton1ActionPerformed(jDialog.java:75)
    at desktop.jDialog.access$000(jDialog.java:13)
    at desktop.jDialog$1.actionPerformed(jDialog.java:36)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    etc… etc…

    Creo que esta excepción es normal ya que jInternalFrame no lo tengo inicializado en el jDialog. Lo que no se como hacer es lo que comentas.
    Debes enviar al JDialog la instancia actual del InternalFrame

  207. Ivan dijo:

    Buenas tengan todos
    Jorge mi problema esta en el jframe con imagen ya aplique todo el codigo del jpanel y el frame pero no me hace nada no me pinta la imagen de fondo, ya le estube buscando pero no mas nada.

  208. HiPoTeR,

    Debe enviarle una instancia del frame interno de alguna manera, ya sea en el constructor de JDialog o mediante la invocación a algún método del JDialog. Esto implica que en tú JDialog tengas una propiedad del tipo del frame interno.

    Es complicado tratar de explicarlo con palabras, espero me entiendas.

    Estamos en contacto!

  209. HiPoTeR dijo:

    http://foro.chuidiang.com/index.php

    ?action=dlattach;topic=1248.0;attach=94

    Ya lo he resuelto, en el enlace que puse es para que os descargeis un .zip que contiene un proyecto de netbeans que hace justo que necesitaba, mandar información desde in jDialog a un jInternalFrame.

    El problema resuelto:

    1. He suprimido los parametros en el constructor del jDialog.
    2. He tenedo que declarar la caja de texto de destino como public static (en el jInternalFrame este punto es esencial).

    Salu2.

  210. arturo dijo:

    como va jorge… mira me fije bien sobre el archivo manifiesto y no posee ni hace referencia a la carpeta de imagenes…..
    ¿ como lo arreglo ?

  211. Hola arturo,

    Creo que debes hacer lo siguiente, abre tú proyecto y busca la parte de Libraries (Librerias) y luego clic derecho Agregar Jar/Cargpeta (Add jar/folder). En el cuadro de dialogo que te aparece buscas la carpeta de las imagenes y la agregas.

    Luego revisa el archivo de manifiesto y debería estar incluido ahí.

    Espero que funcione

  212. Pagan dijo:

    Muy interesante…..

    pero me gustaria saber un poco mas hacerca de
    como conectar mis codigos a un menu que hice en
    java FX…….

    Por favor ayudenme

  213. Pagan,

    No tengo claro lo que pretendes hacer, quieres unir tú menú elaborado en Java FX con una aplicación Swing?

    No conozco mucho de Java FX(estoy estudiando), pero creo que no se puede.

    Si me aclaras un poco más el tema te puedo ayudar.

  214. arturo dijo:

    y te aclaro que revise el archivo de manifiesto, ke se encuentra dentro del JAR , si se encontraba la carpeta de imagenes ………… Pero como te dije anteriormente , no funciona :(

  215. dallas dijo:

    hola a todos los que participan en la comunidad de cafelojano, tengo una situacion me pidieron ahora que yo creara un compilador en java, que pueda aceptar variables y ejecutar pequeños programas, sin embargo no se donde empezar si alguien me pudiera comentar como pordria empezar se los agradeceria

  216. hibis dijo:

    oye hermano, tengo una duda, quiero acer la comunicacion entre frame, si aqui en un frame tengo un JTextfield introdusco un numero, y lo quiero visualizar en otra frame como un a etiqueta…gracias responderme muy pronto por favooooor

  217. Pagan dijo:

    Lo que pasa, es que hice un menu (ventana) en Cool Menu FX Tool y quiero usar esa ventana en netbeans reemplasando a las tipicas ventanas Swing. Al guardar, me genera varios archivos, pero no se cual me sirve para trabajar con el netbeans…… bueno…eso….
    ayudenme.

  218. arturo dijo:

    jorge…….. hice lo ke me dijiste (abrir el proyecto y buscar la parte de Libraries (Librerias) y luego clic derecho Agregar Jar/Cargpeta (Add jar/folder). En el cuadro de dialogo que te aparece buscas la carpeta de las imagenes y la agregas.)

    y te aclaro que revise el archivo de manifiesto, ke se encuentra dentro del JAR , si se encontraba la carpeta de imagenes …………
    Pero, no funciona :|

  219. Pagan dijo:

    Como puedo validar un textField para que solo se puedan teclear numeros… me entienden?

    por favor ayudenme, he buscado en varios sitios, pero los codigos que salen no me ayudan en nada, NO SIRVEN……… espero que me ayuden nesesito esto para ganar puntos extras en un certamen…..

  220. Gabii dijo:

    Hola, Bueno es que no entiendo bien donde pongo el codigo, quiero implementarlo en una clase que tengo, la clase consisten en unJFramecon un menu y un boton salir, solo tiene un color de fondo pero quiero ponerle una imagen lo habia intentado con un ImageIcon pero no sale nada,me parece que su codigo me podria ayudar pero no se como implementarlo en mi codigo solo para agregar la imagen al Frame que ya tengo?

  221. Gabii dijo:

    Esta es mi clase:

    // ————–Menu para usuario administrador———————– okiss!!
    package secuencial;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;

    public class MenuUsuario extends JFrame{

    private JMenuItem OpcionAltas;
    private JMenuItem OpcionBajas;
    private JMenuItem OpcionCambios;
    private JMenuItem OpcionBorrar;
    private JMenuItem OpcionIndividual;
    private JMenuItem OpcionGeneral;
    private JMenuItem OpcionAutor;
    private JMenuItem OpcionSalir;
    private JMenuItem OpcionNewUsuario;
    private JMenuItem OpcionBajaUsuario;
    private JMenuItem OpcionConsUsuario;
    private JMenuBar BarraDeMenus;

    private JMenu menuArchivo;
    private JMenu menuRecuperacion;
    private JMenu menuActualizacion;
    private JMenu menuConsulta;
    private JMenu menuhacercaDe;
    private JMenu menuUsuario;

    private JToolBar BarraDeHerr;
    private JButton cerrar;
    private Color color;

    JLabel login;

    public MenuUsuario() //Constructor
    {
    setSize(400, 300);
    setTitle(“Usuarios…El Rincon del Lector”);
    setLocation(300, 159);
    inicializaComponentes();
    color=new java.awt.Color(0,150,255);
    getContentPane().setBackground(color);

    Icon i=new ImageIcon(“imagen.jpeg”);
    login=new JLabel(“”,i,SwingConstants.LEFT);
    login.setBounds(0,20,200, 100);
    getContentPane().add(login);

    }
    private void inicializaComponentes()
    {
    BarraDeHerr = new JToolBar();
    BarraDeMenus = new JMenuBar();
    menuArchivo = new JMenu();
    menuRecuperacion = new JMenu();
    menuActualizacion = new JMenu();
    menuConsulta = new JMenu();
    menuhacercaDe = new JMenu();
    menuUsuario =new JMenu();
    OpcionNewUsuario = new JMenuItem();
    OpcionBajaUsuario = new JMenuItem();
    OpcionConsUsuario = new JMenuItem();
    OpcionAltas = new JMenuItem();
    OpcionBajas = new JMenuItem();
    OpcionCambios = new JMenuItem();
    OpcionBorrar = new JMenuItem();
    OpcionIndividual = new JMenuItem();
    OpcionGeneral = new JMenuItem();
    OpcionAutor = new JMenuItem();
    OpcionSalir = new JMenuItem();

    cerrar=new JButton();
    getContentPane().setLayout(null);
    addWindowListener(new java.awt.event.WindowAdapter()
    {
    public void windowClosing(java.awt.event.WindowEvent evt)
    {
    System.exit(0);
    }
    });

    //——————-Menu Archivo——————-//
    menuArchivo.setMnemonic(‘A’);
    menuArchivo.setText(“Archivo”);
    //——————-Opcion Actualizacion———–//
    menuActualizacion.setMnemonic(‘A’);
    menuActualizacion.setText(“Actualizacion”);
    //——————SubOpcion Altas de Actualizacion—–//
    OpcionAltas.setMnemonic(‘l’);
    OpcionAltas.setText(“Altas”);
    OpcionAltas.setToolTipText(“Altas de registros”);
    menuActualizacion.add(OpcionAltas);
    //——————SubOpcion Bajas de Actualizacion—–//
    OpcionBajas.setMnemonic(‘B’);
    OpcionBajas.setText(“Bajas”);
    OpcionBajas.setToolTipText(“Elimina un registro del archivo”);
    menuActualizacion.add(OpcionBajas);
    //——————SubOpcion Cambios de Actualizacion—–//
    OpcionCambios.setMnemonic(‘C’);
    OpcionCambios.setText(“Cambios”);
    OpcionCambios.setToolTipText(“Cambia el contenido de un registro”);
    menuActualizacion.add(OpcionCambios);

    menuArchivo.add(menuActualizacion);

    //——————Opcion Salir—————————//

    OpcionSalir.setMnemonic(‘S’);
    OpcionSalir.setToolTipText(“Cierra la operacion”);
    OpcionSalir.setText(“Salir”);

    menuArchivo.add(OpcionSalir);

    menuRecuperacion.setMnemonic(‘R’);
    menuRecuperacion.setText(“Recuperacion”);

    menuConsulta.setText(“Consulta”);
    menuConsulta.setMnemonic(‘t’);
    OpcionIndividual.setText(“Indidual”);
    OpcionIndividual.setMnemonic(‘I’);
    OpcionIndividual.setToolTipText(“Consulta un registro del archivo”);
    menuConsulta.add(OpcionIndividual);
    OpcionGeneral.setText(“General”);
    OpcionGeneral.setMnemonic(‘G’);
    OpcionGeneral.setToolTipText(“Muestra el contenido del archivo”);
    menuConsulta.add(OpcionGeneral);

    menuRecuperacion.add(menuConsulta);
    BarraDeMenus.add(menuArchivo);

    menuUsuario.setMnemonic(‘U’);
    menuUsuario.setText(“Usuario”);
    menuUsuario.add(OpcionNewUsuario);
    menuUsuario.add(OpcionBajaUsuario);
    menuUsuario.add(OpcionConsUsuario);

    OpcionNewUsuario.setText(“Agregar Usuario”);
    OpcionNewUsuario.setMnemonic(‘N’);
    OpcionBajaUsuario.setText(“Eliminar Usuario”);
    OpcionBajaUsuario.setMnemonic(‘r’);
    OpcionConsUsuario.setMnemonic(‘s’);
    OpcionConsUsuario.setText(“Ver Usuarios”);

    BarraDeMenus.add(menuRecuperacion);
    BarraDeMenus.add(menuUsuario);

    menuhacercaDe.setText(“?”);
    OpcionAutor.setText(“Acerca de…”);
    menuhacercaDe.add(OpcionAutor);
    BarraDeMenus.add(menuhacercaDe);
    setJMenuBar(BarraDeMenus);

    // —————-Botton salir————-

    cerrar.setText(“Cerrar”);
    cerrar.setMnemonic(‘r’);
    cerrar.setToolTipText(“Terminar la aplicacion”);
    getContentPane().add(cerrar);
    cerrar.setBounds(270,210,100, 20);

    ActionListener accion = new java.awt.event.ActionListener()
    {
    public void actionPerformed(java.awt.event.ActionEvent evento)
    {
    Object obj=evento.getSource();
    if (obj==OpcionBorrar)
    {
    //EliminaArchivo elimina=new EliminaArchivo();
    // elimina.Borra();
    }
    if (obj==OpcionAltas)
    {
    new Captura().setVisible(true);
    }
    if (obj==OpcionBajas)
    {
    new Bajas().setVisible(true);
    }
    if (obj==OpcionCambios)
    {
    JOptionPane.showMessageDialog(null,”Opcion Cambios NO esta listo pff xD”,”Informacion”,JOptionPane.PLAIN_MESSAGE);
    //new Captura().setVisible(true);
    }
    if (obj==OpcionIndividual)
    {
    new Consulta().setVisible(true);
    }
    if (obj==OpcionGeneral)
    {
    //JOptionPane.showMessageDialog(null,”Opcion Listado”,”Informacion”,JOptionPane.PLAIN_MESSAGE);
    Listararchivo l = new Listararchivo();
    l.MostrarListado();
    }
    if (obj==OpcionNewUsuario)
    {
    new Utilidad().setVisible(true);
    }
    if (obj==OpcionBajaUsuario)
    {
    new BajaUsuario().setVisible(true);
    }
    if (obj==OpcionConsUsuario)
    {
    ListadoUsuario listau=new ListadoUsuario();

    listau.mostrardatos();
    }
    if (obj==OpcionAutor)
    {
    JOptionPane.showMessageDialog(null,”GaBii*”, “Informacion del Autor”, JOptionPane.INFORMATION_MESSAGE);
    }
    if (obj==OpcionSalir)
    {
    //System.exit(0);
    dispose();
    }
    if (obj==cerrar)
    {
    //System.exit(0);
    dispose();
    }
    }
    };
    OpcionBorrar.addActionListener(accion);
    OpcionAltas.addActionListener(accion);
    OpcionCambios.addActionListener(accion);
    OpcionBajas.addActionListener(accion);
    OpcionSalir.addActionListener(accion);
    OpcionGeneral.addActionListener(accion);
    OpcionIndividual.addActionListener(accion);
    OpcionAutor.addActionListener(accion);
    OpcionNewUsuario.addActionListener(accion);
    OpcionBajaUsuario.addActionListener(accion);
    OpcionConsUsuario.addActionListener(accion);
    cerrar.addActionListener(accion);
    }
    public static void main(String[] args)
    {
    new MenuUsuario().setVisible(true);
    }
    }

  222. Carledris dijo:

    Como podria sobreponer una imagen png sobre un JPanel, mi idea fue poner la imagen en un JLabel y luego añadirlo al JFrame donde eta el JPanel y lo coloca encima pero ya no se muesta el JPanel

  223. Carledris dijo:

    Estoy haciendo un juego y necesito ponerle diseño a mi juego me dijieron que se podia sobreponer una imagen png diseño tipo dota o star craft (diseño alrededor del mapa, etc)

  224. Hola hibis,

    Debes enviarlo tus datos como parámetros de algún método, inclusive el constructor eso te hará que tengas en un JFrame referencias al segundo JFrame. Sabes que ésta pregunta es recurrente, así que haré algún ejemplo básico para que puedan ver la manera de hacer.

    Saludos y espero que mi pequeña explicación te ayude y pendiente del ejemplo.

    Saludos desde Loja, al sur de Ecuador

  225. Hola Pagan,

    No he trabajado con la herramienta que mencionas, pero si te genera algún archivo con la extensión jar, lo puedes incluir dentro de NetBeans. Busca un post que hice sobre componentes reutilizables en NetBeans.

    Saludos.

  226. Hola arturo,

    Sabes que he revisado nuevamente el ejemplo y te comento que haciendo doble clic sobre el archivo .jar se ejecuta sin problema el ejemplo y puedo ver las imágenes y todo bien. No se me ocurre cuál puede ser tú problema.

    Seguiré buscando cómo ayudarte.

    Saludos

  227. Hola Pagan,

    Para validar que únicamente te ingresen dígitos en un JTextField debes trabajar con los eventos de teclado. Al JTextField debes asociarle alguno de los keyPressed, keyReleased o keyTyped. Ahí tienes que validar si te ingresaron un digito o no, utiliza el método getKeyCode() y las constantes que trae la clase KeyEvent.

    Tienes que tener en cuenta cuando se presionan combinaicones de teclas como Shift, Ctrl, etc.

    Espero que te sirva, saludos.

  228. Hola Gabii,

    Si tienes un JFrame, debes sobreescribir el método paint paintComponent de tú JFrame, lo escribes como se muestra en el ejemplo que he subido, busca la clase PnlFondo y ahí verás el método que te mencioné.

    Saludos y me comentas tus resultados….

  229. Carledris,

    Hola, mmmm no he realizado la prueba de sobreponer imágenes, pero te recomendaría que busques algún framework que te permita hacer juegos, con eso te ahorras mucho, mucho trabajo. Mira algo de GreenFoot que te podría dar ideas.

    Saludos….

  230. Hola Pagan,

    Mira puedes hacer ésto tengo un JTextField llamado jTextField1 y le he asociado un método que se dispara cuando se suelta una tecla. El código es algo así:
    private void jTextField1KeyReleased(java.awt.event.KeyEvent evt) {
    String texto = jTextField1.getText();
    if(texto.trim().matches(“.*\\D+.*”)){
    Toolkit.getDefaultToolkit().beep();
    texto = texto.substring(0, texto.length() – 1);
    jTextField1.setText(texto);
    }
    }

    Únicamente verifica números enteros postivos. Utiliza expresiones regulares(un tema pendiente para mi) para su validación.

    Espero que te ayude en algo

  231. Ivan dijo:

    Hola Jorge
    Oie Jorge tengo una duda sobre los puertos de comunicacion seriales ya hice una aplicacion para mandar datos y los manda excelentemente bien y tambien hice un aplicacion para recibir tambien recibe.
    El puto es que quiero juntar las dos aplicaciones en un jframe el problema es que en la aplicacion que es para leer pues hay un implements Runnable,SerislPortEventListener que esto no lo puedo aplicar a un jframe como podria hacer para juntarlos en una mismo aplicacion?? mi codigo es el siguiente:

    public class recepcion_2 implements Runnable,SerialPortEventListener {
    CommPortIdentifier idPuerto;
    public Enumeration listaPuertos;
    InputStream entrada;
    SerialPort puertoSerie;
    Thread tLectura;
    servidor datos=new servidor();
    TextField caja;
    Label foco;

    public recepcion_2() {
    // Si el puerto no esta en uso, se intenta abrir
    try {
    listaPuertos = CommPortIdentifier.getPortIdentifiers();
    while( listaPuertos.hasMoreElements() ) {
    idPuerto = (CommPortIdentifier)listaPuertos.nextElement();

    if( idPuerto.getPortType() == CommPortIdentifier.PORT_SERIAL ) {

    if( idPuerto.getName().equalsIgnoreCase(datos.set_puerto()) ) {
    JOptionPane.showMessageDialog(null,”Conectando con puerto para lectura”);
    puertoSerie = (SerialPort)idPuerto.open( “AplLectura”,2000 );// WINDOWS
    // Lector del puerto, se quedar� esperando a que llegue algo
    // al puerto

    }
    }
    }

    } catch( PortInUseException e ) {}
    // Se obtiene un canal de entrada
    try {

    entrada = puertoSerie.getInputStream();
    } catch( IOException e ) {}

    // Añadimos un receptor de eventos para estar informados de lo
    // que suceda en el puerto
    try {
    puertoSerie.addEventListener( this );
    } catch( TooManyListenersException e ) {}

    // Hacemos que se nos notifique cuando haya datos disponibles
    // para lectura en el buffer de la puerta
    puertoSerie.notifyOnDataAvailable( true );

    // Se fijan los parametros de comunicacion del puerto
    try {

    puertoSerie.setSerialPortParams( 9600,
    datos.set_Bits_Datos(),
    datos.set_Bits_Parada(),
    datos.Paridad() );
    } catch( UnsupportedCommOperationException e ) {}

    // Se crea y lanza el thread que se va a encargar de quedarse
    // esperando en la puerta a que haya datos disponibles
    tLectura = new Thread( this );
    tLectura.start();
    }

    public void run() {
    try {

    Thread.sleep( 20000 );
    } catch( InterruptedException e ) {}
    }

    public void serialEvent( SerialPortEvent _ev ) {
    switch( _ev.getEventType() ) {

    case SerialPortEvent.BI:
    case SerialPortEvent.OE:
    case SerialPortEvent.FE:
    case SerialPortEvent.PE:
    case SerialPortEvent.CD:
    case SerialPortEvent.CTS:
    case SerialPortEvent.DSR:
    case SerialPortEvent.RI:
    case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
    break;
    // Cuando haya datos disponibles se leen y luego se
    // imprime lo recibido en la consola
    case SerialPortEvent.DATA_AVAILABLE:
    byte[] bufferLectura = new byte[20];
    try {
    while( entrada.available() > 0 ) {
    int nBytes = entrada.read( bufferLectura );
    }
    // System.out.print( new String(bufferLectura) );

    JOptionPane.showMessageDialog(null,new String(bufferLectura));
    entrada.close();
    } catch( IOException e ) {}
    break;
    }
    }

    }

  232. Hola Ivan,

    Tranquilo por la palabrota, he visto tú código y te comento lo siguiente, tú implementas 2 interfaces, así que tranquilamente lo puedes implementarlas sin problema en algún JFrame. Si trabajas con NetBeans, modificas el código fuente y listo.

    Te recomendaría que trabajes con 2 JPanel que implementen tus interfaces y puedes ubicar ambos JPanel dentro del mismo JFrame.

    Espero ser claro con mi explicación.

    Saludos

  233. Ivan dijo:

    No entendi bueno si lo hago un jpanel mmm me daria como resultado public “nombreclase” extend JPanel y no podria poner el implements, lo siento por mi pregunta al parecer es sencillo pero no encuentro la forma, y lo demodificar el codigo fuente de un jframe mmm no lo entiendo. te estaria eternamente agradecido si me ayudaras.

    muchas gracias

  234. Ivan dijo:

    Y lo que pasa es que hice esto puse los dos codigos dentro del jframe el de mandar datos y recibir pero no se como correr los dos no se si pudiera correr los dos con hilos?? y bueno te dejo el codigo:

    package servidor_serial;

    import java.io.*;
    import java.util.*;
    import javax.comm.*;
    import javax.swing.*;
    import servidor_serial.recepcion;
    /**
    *
    * @author Administrador
    */
    public class Servidor_serial extends javax.swing.JFrame {

    public Servidor_serial() {
    initComponents();
    lista.setModel(new javax.swing.DefaultListModel());

    }

    SerialPort puertoSerie;
    public OutputStream salida;
    public String mensaje ;

    ///////////////////////////////////////////

    int datos;
    int parada;
    String paridad;
    int Pari;
    String flujo;
    int bau;

    ///////////////////////////////Escribir en salida//////////////////////////////////

    //////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////Inicio de Metodos/////////////////////////////

    public int set_Bits_Datos(){

    if(bdato.getSelectedIndex()==0){

    JOptionPane.showMessageDialog(null,”Debes de Introducir valor de Bits de Datos”,”Error de Bit´s”,JOptionPane.WARNING_MESSAGE);

    }

    else
    if(bdato.getSelectedIndex()==1){
    if(puertoSerie.getDataBits()==5);
    int valor=5;
    datos=valor;
    JOptionPane.showMessageDialog(null,”Bit´s de datos :”+datos);
    }
    else
    if(bdato.getSelectedIndex()==2){
    if(puertoSerie.getDataBits()==6);
    int valor=6;
    datos=valor;
    JOptionPane.showMessageDialog(null,”Bit´s de datos :”+datos);
    }
    else
    if(bdato.getSelectedIndex()==3){
    if(puertoSerie.getDataBits()==7);
    int valor=7;
    datos=valor;
    JOptionPane.showMessageDialog(null,”Bit´s de datos :”+datos);
    }
    else
    if(bdato.getSelectedIndex()==4){
    if(puertoSerie.getDataBits()==8);
    int valor=8;
    datos=valor;
    JOptionPane.showMessageDialog(null,”Bit´s de datos :”+datos);
    }

    return datos;

    }

    public int set_Bits_Parada(){

    if(bparada.getSelectedIndex()==0){

    JOptionPane.showMessageDialog(null,”Debes de Introducir Bit´s de Parada”,”Error de Bit´s de Parada”,JOptionPane.WARNING_MESSAGE);
    }
    else
    if(bparada.getSelectedIndex()==1){
    if(puertoSerie.getStopBits()==1);
    int par=1;
    parada=par;
    JOptionPane.showMessageDialog(null,”Bit´s de Parada :”+parada);
    }
    else
    if(bparada.getSelectedIndex()==2){
    if(puertoSerie.getStopBits()==2);
    int par=2;
    parada=par;
    JOptionPane.showMessageDialog(null,”Bit´s de Parada :”+parada);
    }

    return parada;
    }

    public String set_Paridad(){
    if(Paridad.getSelectedIndex()==0){

    JOptionPane.showMessageDialog(null,”Debes de Introducir Tipo de Paridad”,”Error de Paridad”,JOptionPane.WARNING_MESSAGE);
    }
    else
    if(Paridad.getSelectedIndex()==1){
    if(puertoSerie.getParity()==puertoSerie.PARITY_NONE);
    String pari=”Nula”;
    paridad=pari;
    JOptionPane.showMessageDialog(null,”Tipo de paridad :”+paridad);
    }
    else
    if(Paridad.getSelectedIndex()==2){
    if(puertoSerie.getParity()==puertoSerie.PARITY_EVEN);
    String pari=”Par”;
    paridad=pari;
    JOptionPane.showMessageDialog(null,”Tipo de paridad :”+paridad);
    }
    else
    if(Paridad.getSelectedIndex()==3){
    if(puertoSerie.getParity()==puertoSerie.PARITY_ODD);
    String pari=”Impar”;
    paridad=pari;
    JOptionPane.showMessageDialog(null,”Tipo de paridad :”+paridad);

    }
    else
    if(Paridad.getSelectedIndex()==4){
    if(puertoSerie.getParity()==puertoSerie.PARITY_MARK);
    String pari=”Por Marca”;
    paridad=pari;
    JOptionPane.showMessageDialog(null,”Tipo de paridad :”+paridad);

    }
    else
    if (Paridad.getSelectedIndex() == 5) {
    if (puertoSerie.getParity() == puertoSerie.PARITY_SPACE);
    String pari = “Por Espacio”;
    paridad = pari;
    JOptionPane.showMessageDialog(null, “Tipo de paridad :” + paridad);

    }

    return paridad;
    }

    public String set_Flujo(){

    if(Flujo.getSelectedIndex()==0){

    JOptionPane.showMessageDialog(null,”Debes de Introducir Tipo de Flujo”,”Error de Flujo”,JOptionPane.WARNING_MESSAGE);
    }
    else
    if(Flujo.getSelectedIndex()==1){

    if(puertoSerie.getFlowControlMode()==puertoSerie.FLOWCONTROL_NONE);
    String fl=”Nulo”;
    flujo=fl;
    JOptionPane.showMessageDialog(null,”Tipo de flujo :”+flujo);
    }
    else
    if(Flujo.getSelectedIndex()==2){

    if(puertoSerie.getFlowControlMode()==puertoSerie.FLOWCONTROL_RTSCTS_IN);
    if(puertoSerie.getFlowControlMode()==puertoSerie.FLOWCONTROL_RTSCTS_OUT);
    String fl=”Hardware”;
    flujo=fl;
    JOptionPane.showMessageDialog(null,”Tipo de flujo :”+flujo);
    }
    else
    if(Flujo.getSelectedIndex()==3){
    if(puertoSerie.getFlowControlMode()==puertoSerie.FLOWCONTROL_XONXOFF_IN);
    if(puertoSerie.getFlowControlMode()==puertoSerie.FLOWCONTROL_XONXOFF_OUT);
    String fl=”Software”;
    flujo=fl;
    JOptionPane.showMessageDialog(null,”Tipo de flujo :”+flujo);
    }

    return flujo;
    }

    public int set_Baudios(){

    int b=puertoSerie.getBaudRate();
    bau=b;
    JOptionPane.showMessageDialog(null,”Numero de baudios :”+b);
    return bau;
    }

    public int Paridad(){
    if(Paridad.getSelectedIndex()==1){
    if(puertoSerie.getParity()==puertoSerie.FLOWCONTROL_NONE);
    Pari=puertoSerie.FLOWCONTROL_NONE;
    JOptionPane.showMessageDialog(null,”Tipo de Paridad nula”+Pari,”Paridad”,JOptionPane.INFORMATION_MESSAGE);
    }
    else
    if(Paridad.getSelectedIndex()==2){
    if(puertoSerie.getParity()==puertoSerie.PARITY_EVEN);
    Pari=puertoSerie.PARITY_EVEN;
    JOptionPane.showMessageDialog(null,”Tipo de Paridad Par “+Pari,”Paridad”,JOptionPane.INFORMATION_MESSAGE);
    }
    else
    if(Paridad.getSelectedIndex()==3){
    if(puertoSerie.getParity()==puertoSerie.PARITY_ODD);
    Pari=puertoSerie.PARITY_ODD;
    JOptionPane.showMessageDialog(null,”Tipo de Paridad Impar “+Pari,”Paridad”,JOptionPane.INFORMATION_MESSAGE);

    }
    else
    if(Paridad.getSelectedIndex()==4){
    if(puertoSerie.getParity()==puertoSerie.PARITY_MARK);
    Pari=puertoSerie.PARITY_MARK;
    JOptionPane.showMessageDialog(null,”Tipo de Paridad Marca “+Pari,”Paridad”,JOptionPane.INFORMATION_MESSAGE);
    }
    else
    if(Paridad.getSelectedIndex()==5){
    if(puertoSerie.getParity()==puertoSerie.PARITY_SPACE)
    Pari=puertoSerie.PARITY_SPACE;
    JOptionPane.showMessageDialog(null,”Tipo de Paridad Espacio “+Pari,”Paridad”,JOptionPane.INFORMATION_MESSAGE);
    }

    return Pari;

    }

    //////////////////////////////////////////////////////////////////////////////////////
    public void ListaPuertos() {
    Enumeration ports=
    CommPortIdentifier.getPortIdentifiers();
    while(ports.hasMoreElements()){
    CommPortIdentifier port=
    (CommPortIdentifier)ports.nextElement();
    String Type;
    switch(port.getPortType()){
    case CommPortIdentifier.PORT_SERIAL:

    if(port.getPortType()==1){

    DefaultListModel modelo2=new DefaultListModel();
    modelo2=(javax.swing.DefaultListModel)lista.getModel();
    modelo2.addElement(port.getName());
    }

    break;
    case CommPortIdentifier.PORT_PARALLEL:
    Type=”Paralelo”;
    if(port.getPortType()==0){
    DefaultListModel modelo2=new DefaultListModel();
    modelo2=(javax.swing.DefaultListModel)lista.getModel();
    modelo2.addElement(port.getName());

    }
    break;
    default:
    Type=”Puerto desconocido error”;
    break;
    }
    }

    }

    public void conectar(){
    Enumeration ports=
    CommPortIdentifier.getPortIdentifiers();
    while(ports.hasMoreElements()){
    CommPortIdentifier port=
    (CommPortIdentifier)ports.nextElement();

    switch(port.getPortType()){
    case CommPortIdentifier.PORT_SERIAL:

    //if(lista.getSelectedIndex()==0){

    if(port.getName().equalsIgnoreCase(String.valueOf(lista.getSelectedValue()))){
    try{

    javax.swing.JOptionPane.showMessageDialog(null,”Conectando con puerto”);

    puertoSerie=(SerialPort)port.open(“AplEscritura”,2000);

    String mensaje2=”Puerto–“+port.getName()+”–Conectado”;
    estado.setText(mensaje2);
    txtenviar.setEnabled(true);

    }
    catch(PortInUseException e){
    port.getCurrentOwner();
    javax.swing.JOptionPane.showMessageDialog(null,”Puerto en uso Imposible conectar”,”Error en conexion”,JOptionPane.ERROR_MESSAGE);
    String ocupado=”Puerto:—“+port.getName()+”—Esta Ocupado por :”+”–“+port.getCurrentOwner();
    estado.setText(ocupado);
    }
    try{

    salida=puertoSerie.getOutputStream();

    }
    catch(IOException e){
    JOptionPane.showMessageDialog(null,”Imposible obtener Salida de Comunicacion”,”Error de Salida”,JOptionPane.ERROR_MESSAGE);

    }

    }
    //}
    else{
    // if(lista.getSelectedIndex()==1){

    if(port.getName().equalsIgnoreCase(String.valueOf(lista.getSelectedValue()))){
    try{

    javax.swing.JOptionPane.showMessageDialog(null,”Conectando con puerto”);

    puertoSerie=(SerialPort)port.open(“AplEscritura”,2000);

    String mensaje2=”Puerto–“+port.getName()+”–Conectado”;
    estado.setText(mensaje2);
    txtenviar.setEnabled(true);

    }
    catch(PortInUseException e){
    port.getCurrentOwner();
    javax.swing.JOptionPane.showMessageDialog(null,”Puerto en uso Imposible conectar”,”Error en conexion”,JOptionPane.ERROR_MESSAGE);
    String ocupado=”Puerto:—“+port.getName()+”—Esta Ocupado por :”+”–“+port.getCurrentOwner();
    estado.setText(ocupado);
    }
    try{

    salida=puertoSerie.getOutputStream();

    }
    catch(IOException e){
    JOptionPane.showMessageDialog(null,”Imposible obtener Salida de Comunicacion”,”Error de Salida”,JOptionPane.ERROR_MESSAGE);

    }

    }

    }

    }

    }

    }

    //
    private void initComponents() {

    jPanel1 = new javax.swing.JPanel();
    jLabel1 = new javax.swing.JLabel();
    jScrollPane2 = new javax.swing.JScrollPane();
    lista = new javax.swing.JList();
    conectar = new javax.swing.JButton();
    jLabel4 = new javax.swing.JLabel();
    jLabel2 = new javax.swing.JLabel();
    enviar = new javax.swing.JButton();
    borrar = new javax.swing.JButton();
    Obtener = new javax.swing.JButton();
    jLabel5 = new javax.swing.JLabel();
    bdato = new javax.swing.JComboBox();
    jLabel6 = new javax.swing.JLabel();
    bparada = new javax.swing.JComboBox();
    jLabel7 = new javax.swing.JLabel();
    Paridad = new javax.swing.JComboBox();
    jLabel8 = new javax.swing.JLabel();
    Flujo = new javax.swing.JComboBox();
    salir = new javax.swing.JButton();
    estado = new javax.swing.JTextField();
    jScrollPane1 = new javax.swing.JScrollPane();
    txtenviar = new javax.swing.JTextArea();
    recepcion = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setBackground(new java.awt.Color(153, 0, 0));
    addWindowListener(new java.awt.event.WindowAdapter() {
    public void windowOpened(java.awt.event.WindowEvent evt) {
    formWindowOpened(evt);
    }
    });

    jPanel1.setBackground(new java.awt.Color(0, 102, 102));
    jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, “Servidor”, javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font(“Tahoma”, 1, 18), new java.awt.Color(255, 255, 255)));

    jLabel1.setFont(new java.awt.Font(“Tahoma”, 1, 11));
    jLabel1.setForeground(new java.awt.Color(51, 255, 255));
    jLabel1.setText(“Puertos disponibles:”);

    jScrollPane2.setViewportView(lista);

    conectar.setText(“Conectar”);
    conectar.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(java.awt.event.MouseEvent evt) {
    conectarMouseClicked(evt);
    }
    });

    jLabel4.setFont(new java.awt.Font(“Tahoma”, 1, 12));
    jLabel4.setForeground(new java.awt.Color(0, 255, 255));
    jLabel4.setText(“Estado:”);

    jLabel2.setFont(new java.awt.Font(“Tahoma”, 1, 11));
    jLabel2.setForeground(new java.awt.Color(0, 255, 255));
    jLabel2.setText(“Mensaje a enviar:”);

    enviar.setText(“Enviar “);
    enviar.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(java.awt.event.MouseEvent evt) {
    enviarMouseClicked(evt);
    }
    });

    borrar.setText(“Borrar”);
    borrar.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(java.awt.event.MouseEvent evt) {
    borrarMouseClicked(evt);
    }
    });

    Obtener.setText(“Obtener”);
    Obtener.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(java.awt.event.MouseEvent evt) {
    ObtenerMouseClicked(evt);
    }
    });

    jLabel5.setForeground(new java.awt.Color(0, 255, 255));
    jLabel5.setText(“Bit´s de Datos:”);

    bdato.setModel(new javax.swing.DefaultComboBoxModel(new String[] { “”, “5”, “6”, “7”, “8” }));

    jLabel6.setForeground(new java.awt.Color(0, 255, 255));
    jLabel6.setText(“Bit´s de Parada:”);

    bparada.setModel(new javax.swing.DefaultComboBoxModel(new String[] { “”, “1”, “2” }));

    jLabel7.setForeground(new java.awt.Color(0, 255, 255));
    jLabel7.setText(“Paridad:”);

    Paridad.setModel(new javax.swing.DefaultComboBoxModel(new String[] { “”, “Ninguna”, “Par”, “Impar”, “Por marca”, “Por espacio” }));

    jLabel8.setForeground(new java.awt.Color(0, 255, 255));
    jLabel8.setText(“Control de Flujo”);

    Flujo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { “”, “Ninguno”, “Hardware”, “Software” }));

    salir.setText(“Salir”);
    salir.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(java.awt.event.MouseEvent evt) {
    salirMouseClicked(evt);
    }
    });

    txtenviar.setColumns(20);
    txtenviar.setRows(5);
    jScrollPane1.setViewportView(txtenviar);

    recepcion.setText(“Recibir Datos”);
    recepcion.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(java.awt.event.MouseEvent evt) {
    recepcionMouseClicked(evt);
    }
    });

    org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
    jPanel1.setLayout(jPanel1Layout);
    jPanel1Layout.setHorizontalGroup(
    jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(jPanel1Layout.createSequentialGroup()
    .addContainerGap()
    .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
    .add(org.jdesktop.layout.GroupLayout.LEADING, Flujo, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    .add(org.jdesktop.layout.GroupLayout.LEADING, jLabel8, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    .addContainerGap(224, Short.MAX_VALUE))
    .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel1Layout.createSequentialGroup()
    .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel1Layout.createSequentialGroup()
    .addContainerGap()
    .add(estado, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 290, Short.MAX_VALUE))
    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel1Layout.createSequentialGroup()
    .add(65, 65, 65)
    .add(jScrollPane2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 193, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel1Layout.createSequentialGroup()
    .add(114, 114, 114)
    .add(jLabel1))
    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel1Layout.createSequentialGroup()
    .addContainerGap()
    .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(jPanel1Layout.createSequentialGroup()
    .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel1Layout.createSequentialGroup()
    .add(jLabel5)
    .add(27, 27, 27)
    .add(jLabel6))
    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel1Layout.createSequentialGroup()
    .add(bdato, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 86, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
    .add(bparada, 0, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
    .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(jLabel7)
    .add(Paridad, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 76, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
    .add(jLabel4))
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 25, Short.MAX_VALUE))
    .add(org.jdesktop.layout.GroupLayout.LEADING, jPanel1Layout.createSequentialGroup()
    .add(49, 49, 49)
    .add(Obtener)
    .add(77, 77, 77)
    .add(conectar)))
    .add(10, 10, 10))
    .add(jPanel1Layout.createSequentialGroup()
    .addContainerGap()
    .add(jLabel2)
    .addContainerGap(197, Short.MAX_VALUE))
    .add(jPanel1Layout.createSequentialGroup()
    .addContainerGap()
    .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 290, Short.MAX_VALUE)
    .addContainerGap())
    .add(jPanel1Layout.createSequentialGroup()
    .addContainerGap()
    .add(enviar)
    .add(42, 42, 42)
    .add(borrar)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 46, Short.MAX_VALUE)
    .add(salir, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 63, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
    .add(21, 21, 21))
    .add(jPanel1Layout.createSequentialGroup()
    .add(103, 103, 103)
    .add(recepcion)
    .addContainerGap(112, Short.MAX_VALUE))
    );
    jPanel1Layout.setVerticalGroup(
    jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(jPanel1Layout.createSequentialGroup()
    .addContainerGap()
    .add(jLabel1)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(jScrollPane2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 89, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
    .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
    .add(Obtener)
    .add(conectar))
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(jLabel4)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(estado, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 72, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
    .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
    .add(jLabel5)
    .add(jLabel6)
    .add(jLabel7))
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
    .add(bdato, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
    .add(bparada, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
    .add(Paridad, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(jLabel8)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(Flujo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
    .add(29, 29, 29)
    .add(jLabel2)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 60, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
    .add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
    .add(enviar)
    .add(salir)
    .add(borrar))
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 37, Short.MAX_VALUE)
    .add(recepcion)
    .add(20, 20, 20))
    );

    org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
    layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    );
    layout.setVerticalGroup(
    layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    .add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    );

    pack();
    }//

    private void formWindowOpened(java.awt.event.WindowEvent evt) {

    conectar.setVisible(false);
    bdato.setEnabled(false);
    bparada.setEnabled(false);
    Paridad.setEnabled(false);
    Flujo.setEnabled(false);
    enviar.setVisible(false);
    borrar.setVisible(false);
    salir.setVisible(false);

    estado.setEnabled(false);
    txtenviar.setEnabled(false);

    //el metodo utilizado provoca un error porque apunta a un valor nulo////
    //el evento no puede funcionar porque se requiere implements runnable, SerialPortEventListener y es extend JFrame///
    //como aplicarlo en una funcion de tipo jframe
    //recepcion escucha=new recepcion();
    //escucha.correr();

    }

    private void conectarMouseClicked(java.awt.event.MouseEvent evt) {

    bdato.setEnabled(true);
    bparada.setEnabled(true);
    Paridad.setEnabled(true);
    Flujo.setEnabled(true);
    enviar.setVisible(true);
    borrar.setVisible(true);
    salir.setVisible(true);

    conectar();

    }

    private void borrarMouseClicked(java.awt.event.MouseEvent evt) {
    txtenviar.setText(“”);

    }

    private void enviarMouseClicked(java.awt.event.MouseEvent evt) {

    try {
    puertoSerie.setSerialPortParams( set_Baudios(),
    set_Bits_Datos(),
    set_Bits_Parada(),
    Paridad() );
    } catch( UnsupportedCommOperationException e ) {

    String x=javax.swing.JOptionPane.showInputDialog(“Error Innesperado en Operacion\nDeseas Finalizar el Programa?”);
    while(x.equals(“si”)||x.equals(“Si”)||x.equals(“SI”)){
    System.exit(0);
    }

    }

    try {
    if(salida==null){
    JOptionPane.showMessageDialog(null,”No hay datos de salida”,”Error “,JOptionPane.WARNING_MESSAGE);
    }
    else

    mensaje=txtenviar.getText();
    salida.write(mensaje.getBytes());
    salida.close();

    }

    catch( IOException e ) {
    javax.swing.JOptionPane.showMessageDialog(null,”Imposible enviar Mensaje”,”Error de Envio”,JOptionPane.WARNING_MESSAGE);
    }
    }

    private void ObtenerMouseClicked(java.awt.event.MouseEvent evt) {
    ListaPuertos();
    conectar.setVisible(true);
    }

    private void salirMouseClicked(java.awt.event.MouseEvent evt) {
    System.exit(0);
    }

    private void recepcionMouseClicked(java.awt.event.MouseEvent evt) {
    recepcion lector=new recepcion();

    }

    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new Servidor_serial().setVisible(true);

    }
    });
    }

    // Variables declaration – do not modify
    private javax.swing.JComboBox Flujo;
    private javax.swing.JButton Obtener;
    private javax.swing.JComboBox Paridad;
    private javax.swing.JComboBox bdato;
    private javax.swing.JButton borrar;
    private javax.swing.JComboBox bparada;
    private javax.swing.JButton conectar;
    private javax.swing.JButton enviar;
    private javax.swing.JTextField estado;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JList lista;
    private javax.swing.JButton recepcion;
    private javax.swing.JButton salir;
    private javax.swing.JTextArea txtenviar;
    // End of variables declaration

    }
    class recepcion implements Runnable,SerialPortEventListener {
    CommPortIdentifier idPuerto;
    public Enumeration listaPuertos;
    InputStream entrada;
    SerialPort puertoSerie;
    Thread tLectura;

    // En este ejemplo implementa un thread que es el que se encarga de
    // que la aplicaci�n se quede esperando en el puerto que se haya
    // abierto a que se reciban datos.
    // Primero abre el puerto y luego le fija los par�metros
    public recepcion() {
    // Si el puerto no est� en uso, se intenta abrir
    try {
    listaPuertos = CommPortIdentifier.getPortIdentifiers();
    while( listaPuertos.hasMoreElements() ) {
    idPuerto = (CommPortIdentifier)listaPuertos.nextElement();
    if( idPuerto.getPortType() == CommPortIdentifier.PORT_SERIAL ) {
    // if( idPuerto.getName().equals(“/dev/term/a”) ) { // UNIX
    if( idPuerto.getName().equals(“COM5″) ) {
    JOptionPane.showMessageDialog(null,”Conectando con puerto para lectura”);
    puertoSerie = (SerialPort)idPuerto.open( “AplLectura”,2000 );// WINDOWS
    // Lector del puerto, se quedar� esperando a que llegue algo
    // al puerto

    }
    }
    }

    } catch( PortInUseException e ) {}
    // Se obtiene un canal de entrada
    try {

    entrada = puertoSerie.getInputStream();
    } catch( IOException e ) {}

    // A�adimos un receptor de eventos para estar informados de lo
    // que suceda en el puerto
    try {
    puertoSerie.addEventListener( this );
    } catch( TooManyListenersException e ) {}

    // Hacemos que se nos notifique cuando haya datos disponibles
    // para lectura en el buffer de la puerta
    puertoSerie.notifyOnDataAvailable( true );

    // Se fijan los par�metros de comunicaci�n del puerto
    try {

    puertoSerie.setSerialPortParams( 9600,
    SerialPort.DATABITS_8,
    SerialPort.STOPBITS_1,
    SerialPort.PARITY_NONE );
    } catch( UnsupportedCommOperationException e ) {}

    // Se crea y lanza el thread que se va a encargar de quedarse
    // esperando en la puerta a que haya datos disponibles
    tLectura = new Thread( this );
    tLectura.start();
    }

    public void run() {
    try {
    // En los threads, hay que procurar siempre que haya alg�n
    // m�todo de escape, para que no se queden continuamente
    // bloqueados, en este caso, la comprobaci�n de si hay datos
    // o no disponibles en el buffer de la puerta, se hace
    // intermitentemente
    Thread.sleep( 20000 );
    } catch( InterruptedException e ) {}
    }

    public void serialEvent( SerialPortEvent _ev ) {
    switch( _ev.getEventType() ) {
    // La mayor�a de los eventos no se trata, �stos son los
    // que se producen por cambios en las l�neas de control del
    // puerto que se est� monitorizando
    case SerialPortEvent.BI:
    case SerialPortEvent.OE:
    case SerialPortEvent.FE:
    case SerialPortEvent.PE:
    case SerialPortEvent.CD:
    case SerialPortEvent.CTS:
    case SerialPortEvent.DSR:
    case SerialPortEvent.RI:
    case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
    break;
    // Cuando haya datos disponibles se leen y luego se
    // imprime lo recibido en la consola
    case SerialPortEvent.DATA_AVAILABLE:
    byte[] bufferLectura = new byte[20];
    try {
    while( entrada.available() > 0 ) {
    int nBytes = entrada.read( bufferLectura );
    }
    // System.out.print( new String(bufferLectura) );
    JOptionPane.showMessageDialog(null,new String(bufferLectura));
    } catch( IOException e ) {}
    break;
    }
    }

    }

  235. Ivan dijo:

    perdon por el enorme chorizo (sin albur) solo queria poner en donde puse la otra clase que seria class recepcion implements Runnable,SerialPortEventListener.

  236. Hola Ivan,

    Hasta donde recuerdo con las versiones de NetBeans si se puede modifcar el código fuente de una clase como un JFrame, JPanel, etc.

    Creas tù clase de seguro de genera el código que dices:
    public “nombreclase” extend JPanel implements Runnable, PortSerializable { …..
    No recuerdo el nombre de la otra interfaz :( y terminas de escribir y NetBeans te dirá que existen algunos métodos definidos en la interfaz y que debes definirlos en tú clase y los creará por ti, un ejemplo el método run de la interfaz Runnable.

    Te recomiendo que trabajes con 2 paneles, ya que éstos se puede ubicar dentro de un mismo JFrame y cada uno contener los elmentos GUI que sean propios según su función.

    Saludos y me comentas tus dudas

  237. Ivan dijo:

    muchisimas gracias jorge por la ayudadota que me estas dando…

    bueno eee tengo lo siguiente public “nombre de la clase” extends Jframe implements Runnable,SerialPortEventListener{…
    pero el SerialPortEventListener me lanza un error que es el siguiente me dice que no es abstracto y no se puede sobreescribir el metodo abstracto serialEvent en javax.comm.SerialPortEventListener…

    lo que hice fue crear una interface de SerialPortEventListener pero cuando hago eso me marca error en

    try {
    //me marca error en addEventListener
    puertoSerie.addEventListener( this );
    } catch( TooManyListenersException e ) {}

    y me dice que no se puede encontrar el metodo.

  238. Hola Ivan,

    Por lo que entiendo SerialPortEventListener es una clase abstracta me puede confirmar ésto?

    Ahora lo que puedes hacer, en lugar de utilizar implements y ese tipo de cosas, puede crear 2 hilos y llamarlos a ejecutar, uno de los hilos escribe y otro lee. Algo así:
    Thread t = new Thread(new Runnable() {
    public void run(){
    //Hago la escritura
    }
    });

    Esto lo podrías poner dentro de un método que maneje el clic sobre un botón que diga escribe y algo similar en otro botón que diga leer o algo así.

    Espero que te ayude.

    Saludos.

  239. Ivan dijo:

    Hola Jorge

    Si el SerialPortEventListener es un metodo abstracto, y bueno ya lo intente con los hilos pero mi problema sigue en:

    try {
    //me marca error en addEventListener
    puertoSerie.addEventListener( this );
    } catch( TooManyListenersException e ) {}

    tengo una idea, puedo crear una clase con el implements SerialPortEvenListener y despues mandarlo llamar a el jframe instanciando un objeto de la clase.

    gracias Jorge

  240. Ivan dijo:

    Hola Jorge

    Te comento que pude hacer la aplicacion lo que hice fue hacer las dos en un jframe lo que pasa es que tenia otro error que era el que no cerraba el puerto, si cerraba los output y los input strem´s pero nunca cerraba los puertos entonces pues ya lo cerre.

    Pero cuando recibo en un array de bytes un mensaje digamos “Hola esto es una prueba” lo que hace es me los manda por partes: 1 mensaje:”Hola”,
    2 mensaje:Es0000to e000000s
    3 mensaje Un000000a prue0000ba

    me los manda con basura no se porque tal vez al leer los datos, los estoy metiendo mal al array de bytes que por sierto es de tamaño de 20 y lo eh incrementado pero lo que me hace es que cuando se recibe un mensaje me aunmenta la basura es decir si lo tenia de 20 me manda 20 (0´s) como en el ejemplo de arriba y si lo porngo de tamaño 30 me envia 30 (0´s). no entiendo porque lo investigare y si lo encuentro te comento

    de antemano muchisimas gracias por tu ayudadota que me diste agradesco el tiempo que te tomaste al leer mis dudas y responderlas

    Muchas gracias Jorge

  241. dallas dijo:

    hola jorge soy el del compilador, mira lo que tiene que hacer mi programa es como un interprete, osea que pueda reconocer variables que por ejemplo pueda sumar numeros y si hay errores me los marque con error. si puedes ayudarme te lo agradeceria

  242. Hola,nuevamente yo aqui esperando me puedan ayudadar….
    necesito hacer ciertas validaciones al dejar un objeto jtext. Pero no me reconoce el key TAB…. solo el enter…. que puedo hacer????
    o en que evento puedo meter mis validaciones para lo que escriben en el objeto…

    private void jT_IdUSRKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jT_IdUSRKeyPressed

    char caracter = evt.getKeyChar();
    if (caracter == java.awt.Event.ENTER ||
    caracter == java.awt.Event.TAB)
    {
    //validaciones,
    solo entra si presiono enter……
    } // if tab o enter
    }//GEN-LAST:event_jT_IdUSRKeyPressed

    ademas, como puedo hacer para que cada que presione enter en un objeto. se pase el fojo al siguiente sugun el index…. para no tener que meter codigo en cada evento de cada objeto…
    espero me puedan ayudar….. graxxx.

  243. Hola Ivan,

    Te comento que cuando se trabaja con archivos sucede algo así, debes crearte un método que te depure la información que lees, y una vez depurada la presentas. Me parece que en un libro de Deitel y Deitel Cómo Programar en Java, en la parte de manejo de archivos, se muestra éste método depurador.

    Espero que sea de tú ayuda.

    Saludos

  244. Hola Dallas,

    Si es algo sencillo podrías hacer algo con las clases String, StringTokenizer (no recuerdo bien el nombre) o inclusive con expresiones regulares.

    Revisa el tutor de Java que mantiene Sun y podrás encontrar información sobre los temas que te propongo.

    Si es algo más complejo busca algo de yacc&lex que te podría ayudar.

    Saludos.

  245. Hola Salvador,

    Te comento que yo he trabajado con eventos, pero utilizando las constantes de la clase keyEvent, no sé si existe alguna diferencia con lo que tú utilizas.

    Para las cuestiones del focus, revisa un post aquí mismo en café lojano: cafelojano.wordpress.com/2007/08/08/otras-caracteristicas-de-swing/

    Saludos

  246. ilom dijo:

    Saludos!!!

    Quiero saber si uds. me pueden ayudar tengo un JCombobox pero al iniciar sale vacio y necesito hacer una validacion en la cual si no se ha seleccionado algun item del combo despliege un mensaje ojala y me puedan ayudar ya estuve buscando pero no he encontrado nada gracias

  247. Lorena dijo:

    Hola Como agrego una imagen en este codigo de java? quiero ponerla como fondo de pantalla porq dsp van botones. es un jpeg el codigo es:
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import javax.swing.*;

    public class IntRuleta extends JPanel {
    JButton salir;
    JLabel prox,jgoDados,reloj,reloj1;
    JPanel botones=new JPanel();

    public IntRuleta() {
    botones=setContenPane();
    setLayout(new BorderLayout());
    setBackground(Color.BLUE);
    jgoDados = new JLabel(“Juego de Dados “,JLabel.CENTER);
    jgoDados.setFont(new Font(“Kristen ITC”, Font.CENTER_BASELINE|Font.BOLD,80));
    jgoDados.setForeground(Color.PINK);
    prox = new JLabel(“El servidor se encuentra caido en este momento, Intente mas tarde, Gracias “,JLabel.CENTER);
    prox.setFont(new Font(“Arial”, Font.LAYOUT_LEFT_TO_RIGHT|Font.BOLD,20));
    prox.setForeground(Color.WHITE);
    botones.setLayout(new GridLayout(1,3));
    reloj = new JLabel(“Posible Reloj “);
    reloj.setFont(new Font(“Comic”, Font.LAYOUT_LEFT_TO_RIGHT|Font.BOLD,21));
    salir= new JButton (“Volver”);
    //salir.setBackground(Color.lightGray);
    reloj1 = new JLabel(“Caiazza Natalia, Guittlein Vanesa, Novillo Lorena”,JLabel.RIGHT);
    reloj1.setFont(new Font(“SERIF”, Font.LAYOUT_LEFT_TO_RIGHT|Font.BOLD,15));
    botones.add(reloj);
    botones.add(salir);
    botones.add(reloj1);

    this.add(“South”,botones);
    this.add(“North”,jgoDados);
    this.add(“Center”,prox);
    }

    public static void main(String[] args) {

    JFrame f = new JFrame(“Juego de Dados”);

    WindowListener l=new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    };
    };
    f.addWindowListener(l);

    IntRuleta c = new IntRuleta();
    //Agrega el objeto para que se muestre por la ventana.
    f.add(“Center”, c);
    //Redimensiona la ventana a su tamao natural
    f.pack();
    f.show();
    }
    }

    Espero su rta Urgente gracias

  248. fijate que ya probe con las variables keyEvent, y aun asi no me reconoce el key TAB….. todos los demas si. pero el tab no….. y no se a que se deba….. tendras algun ejemplo de como detectas el tab????
    saludos gracias…

  249. Hola Lorena,

    Tienes que sobreescribir el método paintComponent, es decir debes escribir un método como se muestra en la segunda figura y así tendrás la imagen de fondo y sobre ella puedes ubicar los componentes que necesites.

    Revisa el código que se publicó.

    Saludos

  250. Hola ilom,

    Puedes obtener el valor que se encuentra seleccionado en un combo con el método getSelectedItem() que te devuelve un objeto y lo que tienes que hacer es verificar si ese objeto no es nulo.

    Espero que te ayude.

    Saludos

  251. Hola Salvador,

    Te comento que construí una pequeña aplicación y en realidad no se disparan eventos KeyPress o Release cuando se presiona el TAB. Buscando me encontré con la siguiente entrada que explica el porque y cómo solucionarlo. Aquí te dejo el link:

    http://blog.marcnuri.com/blog/default/2007/06/06/Detecting-Tab-Key-Pressed-Event-in-JTextField-s-Event-VK-TAB-KeyPressed

    Lo probé y funciona no he visto qué posibles implicaciones tenga la solución. Y para indicar qué componente debe obtener el foco debes hacerlo así otroComponente.grabFocus();

    Saludos

  252. arturo dijo:

    como va jorgito …. por las dudas preguntaste a algun colega tuyo sobre mi problema de las imagenes ?

    yo estoy investigando a full en google pero no hay caso che….. tengo q’ entregar el sistema y no encuentro la solucion …. asi que sigo esperando una respuesta tuya…. :P , bye

  253. arturo dijo:

    hola jorge…. te comento ke aparte del problema anterior , ahora se me jodio otra cosa , cuando creo el jar me tira el siguiente mensaje
    could not find the main class . program will exit , no encuentra el main o no esta definida, pero no tengo la menor idea de ke problema puede ser,

    Problemas: las imagenes + la clase main

  254. Hola arturo,

    Te comento que he realizado varias pruebas con el archivo .jar del ejemplo, lo he corrido en varios computadores, algunos de ellos inclusive con otros sistemas operativos y FUNCIONA.

    Tal vez revisaste las líneas de código que tú tienes con las que yo muestro en el ejemplo?Sería bueno que otra persona lo haga porque muchas veces uno se cierra y no se da cuenta de los errores.

    Ahora con el segundo “problema” revisa tu archivo de manifiesto y mira si tienes por ahí algo como Main-Class sino, pues clic derecho sobre el proyecto propiedades, buscas la opción Run y le agregas la clase que tiene el método main.

    Como diríamos en Ecuador estas salado (con una racha de mala suerte), pero vamos no te desanimes.

    Por cierto mira éste foro de JavaHispano que alguien tuvo problemas similares a los tuyos (con las imágenes) http://www.javahispano.org/forum/j2se/es/problema_con_ruta_icono/#4863786

    Saludos

  255. Geremias Gonzalez dijo:

    Hola a todos, soy estudiante de Ing. Informatica de Bolivia y quiesiera que alguien me ayude, es que quiero capturar sonido desde un microfono en Java, solo se reproducir pero no se captura, espero que alquien me ayude, muchas Gracias.

  256. Carledris dijo:

    No se si me puedes mandar el codigo de un grafo para la simulacion de una matriz y el metodo del camino mas corto entre dos puntos en una red de obstaculos

  257. Hola te propongo lo siguiente:

    Para los grafos trabaja con un API que se llama JGraphT, hice algunas pruebas y me parece muy bueno.

    Y si tienes algún problema me lo dices y te comento alguna solución estoy para ayudarte.

    Saludos

  258. carlos castillo dijo:

    hola mira me puedes ayudar con la construcccion de un reproductor de sonido que carge la lista de reproduccion sea de cualquier medio de un Cd o memoria en netbeans 6

  259. billy dijo:

    Hola que tal, tengo una gran duda, alguien sabe de algo que me ayude a pasar de codigo java a c++ o mucho que mejor a lenguaje ensamblador.

    sabes de alguna referencia que me pueda ayudar te lo agradeceria

  260. Safiro dijo:

    Hola porfavor necesito ayuda con este programa soy novata y no se como resolverlo, lo que necesito es en este Jframe jala un atabla y lo unico que quiero es jalar solo algunos registro de la tabla, porfa necesito de su ayuda, gracias amigos!!!!!!!!!!!!, buen dia.

    import java.awt.*;

    import javax.swing.*;

    import java.awt.event.*;

    class VentanaProveedor extends JFrame {
    //super(“Producto”);
    //private JPanel ventanaPrincipal;
    //private JPanel Misdosventanas;
    //private static final Event Botones_Fotos2=(null);
    private JPanel panContenedor; // Creo un panel que contendrá los botones
    private JButton btnAbreVentana,btnSalir,btnAlmacen; // Creo dos botones
    private JFrame ventanaOpciones; // Creo una ventana que contendrá la ventana personalizada

    public VentanaProveedor() {

    btnAbreVentana = new JButton(“Abre Ventana”); // Botón con el titulo Abre Ventana
    btnSalir = new JButton (“Salir”); //Botón con el titulo Salir

    btnAbreVentana.addActionListener(new ActionListener() { // Action que cunplirá el botón btnAbreVentana
    public void actionPerformed(ActionEvent e) {
    AbreVentana(e);
    }
    });

    btnSalir.addActionListener(new ActionListener() { // Action que cunplirá el botón btnSalir
    public void actionPerformed(ActionEvent ex) {
    Salir(ex);
    }
    });

    //Misdosventanas.add(ventanaPrincipal);//abrira nueva ventana
    panContenedor= new JPanel(new FlowLayout(FlowLayout.CENTER)); // Panel horizontalmente centrado
    panContenedor.add(btnAbreVentana); // Añado al panel el botón btnAbreVentana
    //panContenedor.add(btnFotos);//mostrarar fotos
    panContenedor.add(btnSalir); // Añado al panel el botón btnSalir
    add(panContenedor); // Añado el panel al frame
    //panContenedor.action(Botones_Fotos2);
    }

    private void AbreVentana(ActionEvent e) { //método llamado por la actión del botón btnAbreVentana

    String opcion1 = “Ventas”; // Titolo del primer botón de la ventana personalizada
    //String opcion2 = “almacen”; // Titolo del segundo botón de la ventana personalizada
    Object[] opciones = {opcion1/*, opcion2*/}; // Opciones de la ventana personalizada
    int n = JOptionPane.showOptionDialog(ventanaOpciones,
    “Click al voton para entrar ” ,
    “Opciones”, // Titulo de la ventana personalizada
    JOptionPane.YES_NO_OPTION,
    JOptionPane.INFORMATION_MESSAGE,
    null, // Usamos el icono de default
    opciones, // Los titolos de los botones
    opcion1); // El titulo del botón de default

    //se manda a llamar el metodo de la tabla

    Tabla frame = new Tabla();
    frame.pack();
    frame.setVisible(true);

    //se agre el tamaño del arreglo
    String nombre[]={“Mac”,”Monitor”};
    String cantNum=JOptionPane.showInputDialog(“Introduce el total de productos a comprar”);

    int cant= (int)Integer.parseInt(cantNum);
    //se crea y se asigna el tamaño

    int arreglo []=new int [cant];
    for (int i=0; i<arreglo.length; i++){
    opcion1=JOptionPane.showInputDialog(“Clave”);

    int val =Integer.parseInt(opcion1);
    arreglo [i]=val;

    }

    Object[][] data = {};
    String[] columnNames = {“Nombre”,
    “Clave”};
    JOptionPane.showMessageDialog(null, “Productos Comprados: “+cantNum+data);
    int aux;
    for(int i=0; i<arreglo.length-1; i++){
    for(int j=0; jarreglo[j+1]){
    aux=arreglo[j];
    arreglo[j+1]=aux;
    }
    }

    }//salida de la burbuja

    if (n == JOptionPane.YES_OPTION) { // Si seleccionamos el primer botón …
    JOptionPane.showMessageDialog(null, “Gracias por su compra”,”Información”, JOptionPane.INFORMATION_MESSAGE);

    n=Integer.parseInt(opcion1);

    }

    else if (n == JOptionPane.NO_OPTION) { // Si selezionamos el segundo botón …
    JOptionPane.showMessageDialog(null, “Los productoa almacenados”,”Información”, JOptionPane.INFORMATION_MESSAGE);
    }
    }

    private void Salir(ActionEvent ex) { //método llamado por la actión del botón btnSalir
    dispose();
    System.exit(0);
    }

    public static void main(String args[])
    {
    VentanaProveedor frame=new VentanaProveedor();
    frame.setTitle(“Ventana Personalizada”);
    frame.setSize(new Dimension(250,150));
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //metodo de la ventana a mostrar

    VentanaProveedor JFrame = new VentanaProveedor();
    JFrame.pack();
    frame.setVisible(true);

    //codigo que la cerrar ventanaPersonalisada muetre la principal

    }

    }

  261. arturo dijo:

    hola jorge como va…..
    te comento q’ el problema de las imagenes ya lo resolvi , :D
    * ahora el otro problema could not find the main class . program will exit, hice lo que me dijiste que haga (clic derecho sobre el proyecto propiedades, buscas la opción Run y le agregas la clase que tiene el método main.), pero no me funciono para nada. Ayudame por favor ….!!!!

  262. Hola arturo,

    Qué bien que hayas resuelto el problema de las imágenes y si puedes compartir la solución TODOS te lo agradeceríamos y así ayudarías a otros que tienen el mismo problema.

    Para lo del main, volvamos al tema de archivo de Manifiesto busca si existe algo como Main-Class y mira a que clase te apunta, deberías tener una sola clase con un método main, que debería ser la que te señala el archivo de manifiesto, sino es así debes cambiarlo. Tal vez hiciste un cambio a nivel de paquetes? Moviste clases de un paquete hacia otro?

    Revisa lo que te digo y por favor comenta como solucionaste el problema de las imágenes!!

  263. FCBalles dijo:

    Hola!

    Primero de todo debo decir que estoy impresionado con la disponibilidad de Jorge… eres un crack!!

    Yo llego aquí con un problema myuy similar al de Arturo!! :S

    También tengo una aplicación con imágenes, y no sé si este es el problema (de hecho espero que ésto no tenga nada que ver)

    Ya he probado muchas cosas con el dichoso jar y mi problema es que parece que se crea todo bien, pero al ejecutarlo no aparece nada!
    Bueno, eso no es cierto del todo, aparece una ventana que se puede maximizar pero que no contiene nada!

    ¿A qué se puede deber si cuando lo ejecuto con Netbeans todo funciona correctamente?

    Lo que más me mosquea es que en la carpeta Lib, solo tengo otro .jar llamado AbsoluteLayout.
    Puede ser este Layout el que desfigure mi aplicación.
    (mis jpanel están hechos con el AbsoluteLayout porque era la forma que mejor me parecía para que los elementos no se “deslocaran” automaticamente)

    Lo digo porque en el manifest aparece esto:
    Class-Path: lib/AbsoluteLayout.jar

    Un saludo y gracias!

  264. FCBalles dijo:

    Por cierto, probando el .jar, tambiñen he tenido bastantes problemas con la clase principal.

    Se han solucionado gracias a que el manifest principal de NetBeans contiene esto: (aparte de la versión)

    X-COMMENT: Main-Class will be added automatically by build

    De esa forma la clase principal la obtiene automáticamente.

    El Manifest del jar tiene esto en una de sus lineas:
    Main-Class: videoclub.Identificacion

    Encuenta que mi clase principal es Identificación y está dentro de la carpeta videoclub.

    Quizá esto le sirva a Arturo…

  265. Hola FCBALLES,

    Gracias por tus comentarios.

    Te puedo decir lo siguiente con respecto al AbsoluteLayout.jar pues se trata de un paquete que nos permite crear la GUI en NetBeans, creo que debes estar trabajando con la versión 5 de Java, porque desde la 6 ese AbsoluteLayout es parte del API base de Java, bueno no creo que eso sea el problema :(

    ¿Tal vez te fijaste si los nombres de los archivos de las imágenes que usas dentro de tú código son exactamente iguales, incluyendo mayúsculas y minúsculas a los archivos físicos?

    Cuando se genera tú archivo jar dentro de él se encuentra la carpeta con las imágenes? Lo puedes ver al archivo .jar con un WinZip o alguna herramienta parecida.

    Espero tus comentarios o quiza la solución de arturo nos pueda ayudar, ya que este tema me tiene intrigado.

    Saludos desde Loja, al sur de Ecuador.

  266. FCBalles dijo:

    Gracias por la respuesta pero ya solucioné mi error.

    El problema es que aparte de los archivos de imágenes, utilizaba una base de datos en Access situada en un sitio diferente.

    Al ejecutarse no encontraba la base de datos y producía un error.

    No sé como meter la base de datos en el .jar para que funcione desde allí dentro (supongo que se podrá hacer).
    Sin embargo si llevo la base de datos dentro de la carpeta “dist” (junto con el .jar) el sistema funciona y con esto ya me es suficiente.

    Un saludo desde Madrid!

  267. arturo dijo:

    como va jorge … disculpa ke no te pude comentar como solucione el problema.. taba medio ocupado ;) ………..

    el problema de las img era la JVM, pero el problema de la clase principal no lo he solucionado

  268. viri dijo:

    hola a todos!!!!
    soy novata en lo que respecta a programar en java y me dejaron realizar un menu con 5 botones, al darle clic a cualquiera de los 5 tiene que aparecer otra ventana en donde me aparezcan 2 botones y al darle clic a cualquiera de ellos tiene que aparecer otra ventana que contenga ejercicios y ejemplos que realice anteriormente y los debe abrir… como le puedo hacer… xfavor alguien me puede ayudar

  269. carlos dijo:

    hola, mi pregunta es la siguiente?
    Como puedo hacer para colocar una mascara para decimales (#.###,##) a una columna de un JTable?
    de antemano muchas gracias y felicidades por el sitio…

  270. Jaime dijo:

    hola, pues bien, soy estudiante de ingenieria en sistemas computacionales en el ITM en Mexico.

    bueno, a lo que voy, encontre su ejemplo de como poner una imagen de fondo en neat beanz, y de hecho estuve intentando hacerlo, sin embargo, la imagen nunca salio, simplemente salia gris todo, tarte de hacerlo de varias maneras, de hecho, lo que intentaba hacer era crar un JPanel donde solo estuviera el fondo y ponerlo en un JFrame con todos los botones y cuadros de texto que ya habia puestoy programado anteriormente, el problema fue que simplemente, no funciono, asi que decidi hacer los botones en un JPanel como lo hizo usted y despues agregarlo a un JFrame, pero no, me marco mas errores de los que ya tenia, asi que no segui mas, decidi bajar su archivo de muestra, y lo hice, de hecho, al igual que el mio, el compilador no muestra que exista ningun error, pero a la hora de que se ejecuta, simplemente no aparece, inicialmente crei que era por la opcion setOpaque(false), o algun otro que anduviera por ahi vlando, pero no, simplenete es que no funciona, incluso el de usted, yo estoy seguro que el que yo he hecho es similr al de usted y al igual que el suyo, no contiene ningun error, pero simplemente sigue sin ejecutarse de manera correcta, podria ayudarme, esto comienza a ser desesperante.
    de antemano gracias.

  271. Hola Jaime,

    Me es algo complicado encontrar el error o la falla que tú tienes, te comento que he probado el código en varios sistemas operativos y funciona sin problemas, tal vez tú problema sea similar al que tuvo arturo, algo con la máquina virtual, o posiblemente el nombre del archivo de la imagen que debe ser igual incluyendo mayúsculas y minúsculas.

    Revisa algo de lo que te digo y me comentas para ver que es lo que se puede hacer.

    Saludos y paciencia que saldrá.

  272. Alfredo dijo:

    Hola Jorge, me ha servido de ayuda lo que he encontrado en el foro, pero ahora me he visto en la necesidad de tener que pintar una imagen de fondo en un JDialog y no he encontrado la manera de hacerlo, espero que me puedas ayudar, ya que solo he podido pintar el fonfo en JPnel como lo haces en tu ejemplo,
    de antemano gracias…

  273. Hola Alfredo,

    Te comento que no he trabajo así con un JDialog, pero he revisado y la solución que plantea éste post no te servirá, debido a que el JDialog no soporta el método paintComponent que utilizó para pintar la imagen.

    Seguiré buscando información para poder ayudarte.

    Saludos.

  274. admiprincipal dijo:

    Hola Amigos

    Disculparan mi frescura pero necesito urgente algun ejemplo de Applets o Swing que me permita conectarme a una base de datos de sql server y a traves de cajas de texto y botones me permitar ver la informacion de la tabla, pudiendo adelantar o retroceder registros, asi como ir al primero o ultimo, y si es que se podria un boton a traves del cual se invoque un proceso para agregar nuevos registros. Espero no importunarlos con este pedido
    Muchas Gracias de antemano
    admiprincipal

  275. Annabell dijo:

    Salu2

    Necesito ayuda, estoy desarrollando una aplicación utilizando el IDE Netbeans 5.
    Tengo unos botones a los que debo agregarle imagenes, las cuales son de tipo .gif , las coloco en la carpeta de correspondiente, luego modifico la propiedad icon utilizando la opción classpath y listo.

    El problema es que con ciertas imagenes me lanza error, creo que no son las imagenes el origen del problema, xq luego dentro de la
    propiedad icon escojo la opción File con estas mismas imagenes y selecciono la ubicación de la imagen y alli si funciona, pero ese no es el procedimiento que debo utilizar porque se supone que no debo estar especificando la ubicacion de cada imagen, y despues puedo tener problemas por esto.

    El error es:

    Exception in thread “AWT-EventQueue-0″ java.lang.NullPointerException
    at javax.swing.ImageIcon.(ImageIcon.java:138)
    at LS.gui.loginUsers.initComponents(loginUsers.java:96)
    at LS.gui.loginUsers.(loginUsers.java:20)
    at LS.gui.loginUsers$3.run(loginUsers.java:221)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

    Please no se olviden de mi…. :(

  276. Leonardo dijo:

    Hola, muchas gracias por tu ayuda, se te agradece, logre poner la imagen en el panel pero cuando agrego un JBotton o JLabel en el panel la imagen no se pinta :S:S y los componentes si se ven =/
    ke podra ser?? si necesitas ver el codigo dime :P:P gracias de antemano!!

  277. Leonardo dijo:

    Bueno aqui te dejo el codigo para que veas, a ver que estoy haciendo mal =/

    import java.awt.Graphics;
    import java.awt.Image;
    import javax.swing.JPanel;
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import java.awt.Dimension;

    public class FondoGato extends JPanel{

    private JButton botonUno;
    private ImageIcon imagenBoton;

    public FondoGato(){

    setLayout(null);
    setBounds(0,0,314,316);
    imagenBoton = new ImageIcon(getClass().getResource(“/imaBoton.PNG”));
    botonUno = new JButton();
    botonUno.setBounds(2,2,70,70);
    botonUno.setIcon(imagenBoton);
    add(botonUno);

    }

    public void paintComponent(Graphics g){

    Dimension tamanio = getSize();
    ImageIcon imagenFondo = new ImageIcon(getClass().getResource(“/Fondo.PNG”));
    g.drawImage(imagenFondo.getImage(), 0, 0, tamanio.width, tamanio.height, null);
    setOpaque(false);

    super.paintComponent(g);
    }
    }

    // No sé ke estoy haciendo mal… como te digo, la imagen se pinta y se ve bien cuando no tiene ningu componente, pero cuando agrego un boton o etiqueta etc etc la imagen no se pinta u los componentes si =( espero me puedas ayudar…. gracias de todos modos.

  278. Francisco dijo:

    Hola, me parece super buena la explicacion, mi problema es que el netbeans no reconoce los comandos que he escrito, que librerias necesito importar para que funcione el codigo??

  279. Hola Francisco,

    En la parte derecha de la página puedes encontrar varios links que te permiten descargar el código fuente del ejercicio.

    Busca BoxNet y dentro verás los archivos que tienes disponibles para la descarga y uno de ellos contiene el código fuente de la aplicación, revísalo.

    Saludos

  280. Claudio dijo:

    Muchas gracias por el código.. lo probé y funciona realmente bien.
    Sin embargo tengo un problemita.. necesito abrir un nuevo frame a través de un botón que se encuentra en el panel (PnlFondo).. lo hice y funciona bien

    JForm a = new JForm();
    a.setVisible(true);

    pero no puedo cerrar el frame en el que se encuentra el PnlFondo, ya que si pongo

    this.setVisible(false);

    solo ‘desaparece’ el Panel, pero el Frame se mantiene (sin la imagen y el resto de los componentes)

    Agradecería tu ayuda

    Salu2.. y gracias nuevamente

  281. arturo dijo:

    hola jorge .. tanto tiempo …. mira toy re aorcado … ;
    Nesecito levantar un reporte perooo , este reporte que realice tiene un subreporte… el subreporte y el reporte ya los hice con ireport y funciona , pero no consigo levantar desde java/j2se….. y tengo ke presentar el martes..Por favor dame una mano….URGENTE

  282. arturo dijo:

    jorge ya solucione mi problema anterior … es decir comprobe con un amigo el codigo y es identico,,,, PERO ahora el problema es ke cuando presiono el boton para observar el reporte me tira un mensaje:

    java.io.fileNotfoundException: “mi_reporte.jasper”

    ¿Por que me tira ese error?

    , por favor mañana LUNES 30 debo entregar

  283. arturo dijo:

    jorge ya solucione el problema … pero ahora tengo otro :( problema………..
    NO ME MUESTRA EL SUB-REPORT DENTRO DEL MASTER-REPORT…………. es una “historia sin fin

  284. carla dijo:

    hola, estoy haciendo lo de cargar una imagen pero el getResource(“/los/imagen/Connecting.gif”) me da error cuando corro el programa, es decir alli se tranca, quisiera saber por que pones Connecting.gif

  285. arturo dijo:

    eeeeeeeeeepaaaaaaaaaaaaaaaaaaaaa … ta cpmplicado parece …., pero deja nomas , ya volvi a solucionar MI problema, ahora tengo otro problema no consigo visualizar el subreport2 del subreport1 del report master….. cada ves se complica mas esto :(

  286. Ana María Pinzón dijo:

    Hola!!! Jorge! de verdad explicas de muy buena manera… ya sé cuando tenga una duda a quien acudir!!! explicas excelente, saludos desde Venezuela!

  287. Ana María Pinzón dijo:

    Jorgeeee!!! help me plis! como ingreso un sonido en un programa!? es que estoy realizando un juego de Bingo, y pues las imagenes las ingrese con el codigo que tienes ahi, y me sirvio de maravilla! espero que me ayudes! mil gracias de antemano

  288. Hola Ana María,

    No tengo mucha experiencia en sonidos con Java, mis aplicaciones han sido más transaccionales, sorry, pero te puedo recomendar que leas:

    http://java.sun.com/products/java-media/sound/

    Y aquí un ejemplo:

    http://java.sun.com/products/java-media/sound/samples/JavaSoundDemo/

    Espero que te sirvan y si puedes nos comentas tus experiencias y soluciones, así ayudamos a todos quienes tienen las mismas inquietudes.

    Saludos, desde Loja la sur de Ecuador

  289. Carledris dijo:

    hola
    No se si tienes el codigo de algunos metodos
    de calculo numerico como ser el metodo de newton, metodo de cholesky

    O si sabes de alguna pagina en donde puedo encontrar estos codigos

    saludos

  290. Luis dijo:

    Hola Jorge,

    He descargado el codigo del jframe con imagen de fondo, y practicando hice uno parecido, pero al ejecutar cuando modifico el tamaño del jframe no se modifica el tamaño de la imagen, me podrias ayudar con esto.

    Saludos

  291. Hola Luis,

    Te recomiendo que vuelvas a ejecutar el método paintComponent luego de maximizar el JFrame, sino ejecuta el método pack().
    Si te fijas en el código que he implementado se calcula el tamaño de la imagen tomando como base el tamaño del contenedor con getSize().

    Espero que te sirva.

  292. Luis dijo:

    Hola Jorge,

    Revise el codigo nuevamente y solucione lo del tamaño de la imagen de fondo, tenia que ver con el Layout del jframe; pero tengo otra duda ahora, ¿es posible que pueda cerrar el jframe desde el panel?; lo que deseo hacer es abrir otro jframe y cerrar el que tiene la imagen de fondo ¿como podria hacerlo?. Gracias de Antemano

    Saludos

  293. Hola Jorge,

    No me funciona el código para poner la imagen de fondo. Así es como tengo:

    package borrame;

    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.Graphics;
    import javax.swing.ImageIcon;

    class PnlFondo extends javax.swing.JPanel {
    PnlFondo() {
    initComponents();
    }
    @Override
    public void paintComponent (Graphics g) {
    Dimension tamanio = getSize();
    ImageIcon imagenFondo = new ImageIcon (getClass().getResource(“/borrame/fondo.jpg”));
    g.drawImage(imagenFondo.getImage(), 0, 0, tamanio.width, tamanio.height,null);
    setOpaque(false);
    super.paintComponent(g);
    }

    private void initComponents() {

    }

    }
    public class NewJFrame extends javax.swing.JFrame {

    /** Creates new form NewJFrame */
    public NewJFrame() {
    initComponents();
    PnlFondo panel = new PnlFondo();
    this.add(panel, BorderLayout.CENTER);
    this.pack();

    }

    Estoy trabajando en netBeans 6, solito crea el método initComponents de la siguiente forma:

    private void initComponents() {

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setMinimumSize(new java.awt.Dimension(800, 600));
    setResizable(false);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGap(0, 361, Short.MAX_VALUE)
    );
    layout.setVerticalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGap(0, 269, Short.MAX_VALUE)
    );

    pack();
    }

  294. anderson dijo:

    muy interessante muy buen aporte.. pero tengo un problema tengo un proyecto ya biennn avanzado y se me ocurrio agreagr la imagen de fondo a ultimo momento y luego de seguir todos los pasos exactamente como los pusiste me sale 1 error de q no reconoce el paquete que se almacena la imagen creo q es por q el proyecto esta trabajado en en eso es lo q creo si estoy mal corrigeme y dame una ayuda q en serio la nesecito :(

  295. anderson dijo:

    en default packahge quise renombrarlo pero no puedo practique el procedimiento en un proyecto nvo y funciona al 100 pero cuando lo paso al otro me sale ese error sialguien me puediera decir copmo sarreglare esto o como renombrar el default package

  296. ElMazter dijo:

    Hola, una consulta. Quiisera colocar una imagen de fondo a un JTextPane para que yo le agregue las letras y el fondo que tenga una imagen. Como se puede hacer esto??

  297. Ivan dijo:

    Hola Jorge:

    Jorge quisiera que me ayudaras con el siguiente problema:

    Lo que pasa es que quiero crear una pagina web con enlaces que se pueden cambiar cuando el administrador.
    Una pagina que sea para usuarios,que haya boton llamado google y hace enlace a google, y cuando el admo entre a la pagina designada para el. Pues que pueda cambiar el enlace a yahoo.

    ¿Como se podria conseguir esto?

    Gracias por tu respuesta.

  298. Ani dijo:

    Hola, necesito ayuda, estoy agregando imagens a los botones de un aplicación que debo desarrollar en NetBeans 5.5, el problema es que con ciertas imagenes funciona y con otras no, todas son de gif y las tengo en una carpeta dentro del proyecto… he intentado con varias imagenes y nada :(
    El error que dá al momento de correrlo es el siguiente:

    Exception in thread “AWT-EventQueue-0″ java.lang.NullPointerException
    at javax.swing.ImageIcon.(ImageIcon.java:138)
    at LS.gui.DialogoSalir.initComponents(DialogoSalir.java:49)
    at LS.gui.DialogoSalir.(DialogoSalir.java:22)
    at LS.gui.DialogoSalir$4.run(DialogoSalir.java:135)

    Xfis… Verdaderamente necesito ayuda, y tengo ya algun tiempo tratando de solucionarlo y nada…

  299. Sair dijo:

    Hola, tengo una consulta… espero me puedan ayudar, soy novata en programación;
    necesito hacer que un quinto boton que se encuentra desabilitado se habilite solo cuando los cuatro anteriores hayan sido presionados al menos una vez cada uno sin importar el orden… Xfa q alguien me ayude…
    Salu2 y gracias desde ahora

  300. ElMazter dijo:

    Hola Jorge… que tal queria saber si pudiste conseguir lo que te pedi.. trate de buscar en otros lados y nada. Si tenes alguna novedad me avisas dale..Saludos…

    Ha y otra cosa, quisiera hacer un JTextField algo asi como el que tiene google, donde vos colocas una palabra para buscar y se me despliega una lista, donde yo le coloque alli los valores. Intente hacerlo pero no se me despliega la lista y ademas no puedo escribir, es solo de salida los resultados. Bueno espero tu ayuda..bye bye..
    Benito Arrieta desde Salta-Argentina

  301. Hola Anil

    Creo que el error se debe a que no encuentra el archivo (la imagen) que utilizas. Revisa cuidadosamente los nombres (inclusive mayúsculas y minúsculas) porque el error puede deberse a alguna situación como esas.

    Saludos

  302. Hola Sair,

    Tú pregunta no está muy relacionada con el tema, pero podrías crear variables tipo boleanas, tantas variables como botones tienes. En el actionPerformed de cada uno de los botones deberías verificar si los valores de esas variables son verdaderas y activar el último botón.

    Saludos

  303. Hola ElMazter,

    Te comento que no he tenido mucho tiempo en éstos días y por tal motivo no he podido ayudarte con lo que te ofrecí.
    Lo que me comentas sobre el JTextField no he realizado algo así, pero debes programar un listener para eventos del teclado.

    Saludos y disculpas

  304. Antonio dijo:

    Hola Jorge

    Yo tengo una duda y espero me puesdas colaborar

    necesito crear ckeckbox de forma dinamica, pero no ha funcionado nada de lo que encuentro, y otra inquietud es cual es la propiedad de un jdesktopPane para darle la posision donde quiero que salga.

    Gracias por la ayuda

  305. Jorge dijo:

    Hola Jorge,

    Tengo una duda. Si tienes un ImageIcon en un Jpanel y quieres hacer zoom a la imagen al presionar un botón, o al presionar el mouse sobre la imagen, de qué forma lo haces? No encuentro un constructor o un método que sirva.

    Muchas gracias por toda la ayuda y una felicitación por ese esfuerzo para enseñar al resto.

    Atentamente, tu tocayo

  306. yam dijo:

    m encantaria saber para que versiones es utilizable, probe con netbeans 5.5 y ps no m dio resultado m emite errores q no logro saber por que si alguien puede ayudarem le estare agradecido

  307. Hola yam,

    Te recuerdo que NetBeans únicamente es una herramienta que ayuda a la construcción de programas Java, así que la solución propuesta no depende de NetBeans sino de Java. Ese ejemplo fue desarrollado en la versión 1.5 de Java. No la he probado en otras versiones anteriores, pero sí en superiores y funciona.

    Si gustas puedes enviarnos algo del detalle de tus errores para poder ayudarte.

    Saludos desde Loja, Ecuador.

  308. Salvador garcia dijo:

    Saludos…
    nuevamente yo solicitando un poco de ayuda…
    mi problema es:

    tengo un jframe Principal con un JdesktopPane… este llama a un jinternal frame,y se perfectamente,pero cuando este JinternalFrame manda a llamar a otro jInternalFrame,este ultimo nunca lo puedo ver…
    trate de agragar este ultimo jinternalFrame al jdesktop del jframePrincipal,y marca un error en tiempo de ejecucion, como si la instancia del jinternal frame que cree no llevara nada…
    como puedo resolver este problema…

    saludos y gracias…

  309. Carlos Fabian dijo:

    Hola… pues yo no tengo una peticion sino solo queria felicitarte por el tiempo que te tomas Jorge en ayudar a tanta gente con sus dudas en programacion Java. Que bueno que hay gente que ayuda como tu. Pues ya agregue tu pagina a marcadores jeje, aunque recientemente me certifique como SCJP creo que tarde o temprano necesitare algun tip. Bye saludos a todos ;)

  310. Oliver Salinas dijo:

    tengo un problema.. estoy hacien unas ventanas jframe con netbeans y necesito incertasles unas imagenes.. implemente la solucion que ud dio y no tuve problemas hasta que genere el proyecto, cada vez que habro el ejecutable , envia unas execiones y me dice que no encontro la imagen.. he probado de todas las formas.. osea las imagenes estan en un paquete del proyecto igual a la del profe y dentro del proyecto cuando hago run.. funciona sin problemas, pero cuando genero el proyecto no carga la imagen por que no la encuantra..

    Profe Jorge.. como lo hizo???

  311. Aitor dijo:

    Hola Jorge! Soy de Cartagena, España estoy trabajando con Java.. a ver si puedes exarme un cable, te explico. Quiero mostrar en un JEditorPane un contenido html, ya e lo e configurado para que admita text/html con el metodo setContentType, pero no me muestra una imagen. El código html de la imagen es:”<img alt=”” src=”/home/… “, bueno pues he metido la carpeta donde coge las imagenes “home/…” y la he puesto donde esta mi programa principal. Pues aún así no la muestra. ¿A qué puede ser debido esto?,¿cómo lo puedo solucionar?
    Gracias

  312. Hola Oliver,

    ¿Cuándo hablas de ejecutable se trata del archivo .jar que te genera NetBeans?

    Si es así, te recomiendo que en tú proyecto le hagas un Clean&Build para que te vuelva a generar el .jar. Antes del paso anterior te recomiendo que revises que los nombres de las imágenes que usas en tú programa sean exactamente los mismos (incluido mayúsculas y minúsculas) nombres de los archivos que utilizas.

    Espero que eso te pueda ayudar.

  313. Hola Aitor,

    No estoy seguro de lo que te voy a decir, pero me parece que tú directorio de imágenes deberías incluirlo en el CLASSPATH. Me imagino que al igual que en otras situaciones Java busca los recursos según los valores de dicha variable de entorno.

    Trataré de revisar el API para tener una mejor idea y poder ayudarte.

    Espero que sea de tú ayuda y nos tiene al tanto de los resultados.

    Saludos desde Loja – Ecuador.

  314. arturo dijo:

    ke haces jorge… tanto tiempo … mira , estoy por desarrollar una aplicacion para tel. movil , pero por el momento no se me ocurre nada… lo mas cercano es un ctrl de stock. pero quiero hacer algo mejor. Por eso acudo a vos para ideas innovadoras… si me pode reposnder hoy … mucho mejor.. gracias ……………….

  315. Ross dijo:

    Saludos….

    Primero Felicitaciones…!!! excelente pagina, es lindo saber que hay personas prestas a ayudar de muy buena voluntad a los demas…
    Tengo una consulta, estoy haciendo una aplicación en java utilizando el ide NetBeans 5.5, tengo un jframe por opción, es decir una para usuarios, una para cuentas, etc… leí en algún lugar que en una aplicación es recomendable tener solo un jframe que corresponda a la ventana principal del proyecto, y que las demas ventanas deben ser de tipo jdialog, sobre todo por aquello de que estos ultimos pueden ser de tipo modal y ayudarian cuando haya ciertos procedimientos que requieren entrada de usuario que determinan una u otra acción.
    ¿es incorrecto usar muchos jframes?
    ¿es realmente determinante el que use jframe o jdialog?
    ¿Qué es lo más recomendable?

    Gracias Jorge y ojala puedas seguir con tan buen trabajo en esta pagina.

  316. Hola Ross,

    Te doy a conocer mis preferencias: me gusta el trabajar con JInternalFrame, así tendré un único JFrame y dentro de él las ventanas internas que sean necesarias. Cuando se trata de construir la aplicación empiezo crea JPanel con los elementos que se requiere, porqué lo hago así, porque un JPanel se puede pegar dentro de JFrame o JInternalFrame y de esa forma podría, en caso de ser necesario, elegir una u otra forma de presentar la GUI.

    No m e gusta trabajar con varios JFrame porque da la impresión que son diferentes aplicaciones, tienes una nueva ventana y eso me resulta algo desagradable, pero bueno son mis preferencias.

    Saludos desde Loja, al sur del Ecuador.

  317. Aitor dijo:

    Hola Jorge! sobre lo que te comente de visualizar la imagen del codigo html en el JEditorPane, pues la solución era añadir a la ruta de la imagen “file:”. No veas lo que me ha costao dar con esto!!

    Oye, Jorge, otra cosilla, quiero visualizar videos en una aplicacion que estoy haciendo y estoy viendo java media framework. No se porque no se visualizan los videos con aplicaciones que estoy cogiendo y se suponen que estan bien.
    ¿Me puedes recomendar códigos o alguna pagina que explique bien como usar esto? Gracias

  318. Gomez dijo:

    Buen dia. Jorge

    Estoy trabajando con NetBeans 6.0.1, cree una aplicacion web con framework JSF, en el diseño arrastre una tabla un TextField y un Boton
    me puedes ayudar como puedo llenar la Tabla con un Resulset.

    El TextField Para ingresar un codigo para poder filtrar (Where), presionando el Boton haga una consulta a la BD de Mysql

    LA TABLA ES DE LA PALETE BASIC

    Obtengo los valores en Resultset, pero no se como Puede llenar la tabla con el Resultset
    —————————————————

    Otra prueba que hice, en servicios hice la conexion a BD de mysql, y arrastre una tabla de la BD a la tabla que esta en el diseño, lo cual llena la tabla, pero de esta manera como puede filtrar para obtener los datos, En SessionBean me Crea RowSet con la consulta SELECT * FROM MITABLA donde puedo poner criteria con un ?
    pero como le envia el parametro, usando Un TextField Presionado un boton.

    POR FAVOR.

    MIL GRACIAS.

  319. sdarknot dijo:

    hola soy sdarknot ayer escribe x lo visto nadie me responde porfa necesito que la pgina jsp muestre el contenido de una imagen de una sentencia a mysql cualkier ayuda ke me oriente es urgente por favor desde ya gracias

  320. jehu dijo:

    disculpe podria hacer ese programa de arriba
    en codigo sin jalar botones ,ya que jalando no puedo
    resolver ese problema , me parece interesante ese
    de ponerle un fondo a una Jframe

  321. Hola Elkin,

    Lo que tienes que hacer es dar clic derecho sobre source, New Package y listo, tienes el paquete (que al final es una carpeta). Luego buscas dicha carpeta y copias las imágenes en la carpeta y eso es todo.

    Espero que te ayude.

    Saludos, desde Loja Ecuador

  322. Hola a todos
    alguien sabe algo de eventos en java
    quiero hacer una vista en mysql usando jtable (neetbeans 6.1) ya lo hize y me muestra un jpanel con todos los datos y me muestra por ejemplo de la tabla productos ,ahora este es el problema quiero hacer esto cuando yo de un click en una celda dentro del janel productos me debe salir otro formulario mostarndome sus detalles del producto al que le hice click

    espero su respuesta

  323. Hola ronald,

    Si revisas éste link (http://72.5.124.55/docs/books/tutorial/uiswing/components/table.html) podrás encontrar un ejemplo bajo el título: “Sorting and Filtering”. Algo así:
    table.getSelectionModel().addListSelectionListener(
    new ListSelectionListener() {
    public void valueChanged(ListSelectionEvent event) {
    int viewRow = table.getSelectedRow();
    if (viewRow < 0) {
    //Selection got filtered away.
    statusText.setText(“”);
    } else {
    int modelRow =
    table.convertRowIndexToModel(viewRow);
    statusText.setText(
    String.format(“Selected Row in view: %d. ” +
    “Selected Row in model: %d.”,
    viewRow, modelRow));
    }
    }
    }
    );

    Espero que te sirva.

    Saludos desde Loja, Ecuador!

  324. Aitor dijo:

    Hola Jorge, me he estancado con un problema de java, y no consigo ver como se podría solucionar, te agradecería que me guiaras un poco, te cuento:

    Quiero mostrar en un JEditorPane la información que tengo almacenada en una base de datos mediante JDBC. El código del método al que llamo una vez creado el entorno gráfico es el siguiente:
    _________________________________________________________
    public void verAvisos()
    {
    System.out.println(“Nos hemos metido en noticias de Avisos.”);

    Connection con = getConnection();

    String sentenciaSQL;
    sentenciaSQL = “select * from noticias WHERE pagina = ‘avisos’ order by creado desc”;

    try {
    stmt = con.createStatement();
    stmt.executeQuery(sentenciaSQL);
    System.out.println(“Recuperando informacion:”);
    ResultSet rs = stmt.executeQuery(sentenciaSQL);
    rs.last();
    int num_filas_avisos = rs.getRow();
    rs.first();
    System.out.println(“El numero de filas de avisos devuelto es: “+num_filas_avisos);
    cadena_avisos = new String[num_filas_avisos];
    int cont_avisos=0;

    while (rs.next()) {

    profe=rs.getString(“usr”);
    titulo=rs.getString(“titulo”);
    descripcion=rs.getString(“descripcion”);
    info=rs.getString(“informacion”);
    cadena_avisos[cont_avisos]=””+””+”Avisos“+”profesor: “+profe+”título: “+titulo+”descripción: “+descripcion+””;

    try{

    System.out.println(“El resultado obtenido es: “+cadena_avisos[cont_avisos]);

    jep11.setText(cadena_avisos[cont_avisos]);
    Consumidor consum=new Consumidor();

    }
    catch(Exception e){
    System.out.println(“Fallo al ver la info de avisos”+e);
    JOptionPane.showMessageDialog(null,”Fallo al ver la info de avisos “);
    }
    cont_avisos++;

    }//while

    System.out.println(“Liberando recursos…”);
    rs.close();
    stmt.close();
    con.close();

    } catch(SQLException ex) {
    System.err.println(“SQLException: ” + ex.getMessage());
    }

    }

    _____________________________________________________________

    El problema es que sólo me muestra el último registro de cadena_avisos y no me va mostrando los anteriores como desearía. La clase Consumidor lo único que hace es consumir un tiempo mediante sleep, y mi idea es que vaya mostrando cada registro de cadena_avisos durante el tiempo indicado en sleep y pase a la siguiente noticia.

    He puesto que se muestre información de lo que se va ejecutando, por lo que puedo ver que funciona el consumidor, pero no me va actualizando el jeditorpane, y tras pasar el tiempo total de todos, me muestra la ultima noticia (la de profesor: pilar). Mientras la pantalla permanece sin nada.

    Te pongo lo que se va ejecutando:

    _____________________________
    Nos hemos metido en noticias de Avisos. Recuperando informacion: El numero de filas de avisos devuelto es: 5 El resultado obtenido es: Avisosprofesor: joantítulo: cambio de practicas tdsdescripción: se puede cambiar el turno en los horarios adjuntos Estamos en consumidor Entramos run del consumidor salimos run del consumidor El resultado obtenido es: Avisosprofesor: pablotítulo: noticia de pablodescripción: kllllllll Estamos en consumidor Entramos run del consumidor salimos run del consumidor El resultado obtenido es: Avisosprofesor: joantítulo: nota formateada sin imagenesdescripción: null Estamos en consumidor Entramos run del consumidor salimos run del consumidor El resultado obtenido es: Avisosprofesor: pilartítulo: arfafwfdescripción: null Estamos en consumidor Entramos run del consumidor salimos run del consumidor Liberando recursos…
    _______________________________

    Por ello creo que el problema es del JEditorPane, pero no encuentro en la api algo que pueda actualizarlo o no se a que se puede deber. Gracias de antemano.

  325. Hola Aitor,

    Me parece que la falla está en ésta línea:
    jep11.setText(cadena_avisos[cont_avisos]);

    setText coloca el texto, pero no lo agrega, es decir lo anterior se pierde por tal motivo únicamente se presenta el último aviso. Busqué en el API y el JEditorPane, no tiene el método append que nos soluciona el problema porque ese método agrega el texto al texto ya existente.

    Te progongo que hagas uso de StringBuffer que si tiene el método append y luego del ciclo while le hagas un jep11.setText(tuStringBuffer.toString()); y listo.

    La recomendación del StringBuffer es por que ésta clase resulta óptima cuando realizas varios concatenaciones de texto, es mejor que usar el operado +.

    Espero que me entiendas.

    Saludos!

  326. Ricardo dijo:

    Hola de nuevo este mensaje me aparece y no deja que corra el programa, ojala me puedas ayudar.

    javac: invalid target release: 1.6
    Usage: javac
    where possible options include:
    -g Generate all debugging info
    -g:none Generate no debugging info
    -g:{lines,vars,source} Generate only some debugging info
    -nowarn Generate no warnings
    -verbose Output messages about what the compiler is doing
    -deprecation Output source locations where deprecated APIs are used
    -classpath Specify where to find user class files
    -cp Specify where to find user class files
    -sourcepath Specify where to find input source files
    -bootclasspath Override location of bootstrap class files
    -extdirs Override location of installed extensions
    -endorseddirs Override location of endorsed standards path
    -d Specify where to place generated class files
    -encoding Specify character encoding used by source files
    -source Provide source compatibility with specified release
    -target Generate class files for specific VM version
    -version Version information
    -help Print a synopsis of standard options
    -X Print a synopsis of nonstandard options
    -J Pass directly to the runtime system

  327. Hola Ricardo,

    Tú problema es que estás trabajando con una versión inferior de JDK, el ejemplo fue desarrollado con JDK 1.6 por eso el mensaje de invalid target release 1.6.

    Puedes hacer lo siguiente:
    Abres el proyecto desde NetBeans, luego seleccionas el proyecto, le das clic derecho y buscas la opción propiedades esto debería mostrarte una nueva ventana. En la sección categorías seleccionas Librerías y en la parte derecha te mostrar la versión del JDK, puedes seleccionar la que tú tienes instalada.

    Saludos y espero que te sirva.

  328. Yoshi dijo:

    Muy bueno, pero tengo un problema cuando se ejecuta el programa.

    Cuando se crea la ventana y los componentes, la imagen de fondo parece que esta encima de los componentes, pero al pasar el raton sobre ellos aparecen y cuando le hago clic por ejemplo a un botón la imagen de fondo desaparece. Necesito saber cual es el problema.

  329. Hola Yoshi,

    Si te fijas en el ejemplo que planteó los cuadros de texto y el botón se encuentran ubicados en el JPanel no en el JFrame, creo que tú error es que ubicaste los cuadros de texto y botón en el JFrame directamente.

    Espero que sea de tú ayuda.

    Saludos

  330. Manuel dijo:

    hola jorge quisiera hacerte una consulta estoy empezando con esto de java quisiera saber como puedo poner imagenes en un jform porque me trae problemas y como puedo ir de un tab panel al otro porfavor si me ayudas gracias. Otra pregunta disculpa que sea tan curioso quisiera saber si asi como visual net tiene le krypton toolkit ahy algun tool para java en especial para netbeans gracias. Atte. Manuel

  331. joshep dijo:

    hola ke tal kisiera ke alguien me ayudara tengo este codigo pero kiero ponerle una imagen de fondo como le puedo hacer
    if(e.getSource()==creditos){
    c.removeAll();
    JLabel cred=new JLabel(“ESTE PROGRAMA FUE DISEÑADO POR ( JOSE OLVERA RUIZ )”);
    cred.setBounds(200,200,510,200); cred.setFont(new Font(“EuropeExt”, Font.BOLD + Font.ITALIC, 14));
    cred.setForeground(Color.DARK_GRAY);
    c.setBackground(new Color(128,0,255));
    c.add(cred);
    c.repaint();
    }

  332. Hola joshep,

    En éste ejercicio se muestra cómo puedes hacerlo, revisalo y hazme llegar tus comentarios.

    Mi solución está centrada al uso del métod paint y no en el uso de JLabel. En tú código deberías llamar al método repaint que hace una llamada al método paint.

    Saludos

  333. jehu dijo:

    hola quiero iniciarme en hilos en java ,por favor
    me pudiera dar algunas pautas ,co,o ejmplo sitios donde
    encontrar buena informacion hacerca de hilos en java , le estarida muy agredecido

  334. nieves dijo:

    Hola…
    soy nueva en esta pagina y a lo que veo es super los felicito…
    Tengo una consulta es sobre jcreator recien empece a codificar en ese lenguaje y me pidieron un proyecto este debe debe ser un juego de dados y siendo franca no se ni como empezar me pudicien ayudar les agradeceria mucho…

  335. Tailus dijo:

    hola… gracias por el codigo para poner el fondo en el Jframe me sirvio muy bien una vez que se cambia la extencion jpg a mayusculas ;)
    se te agradece …
    Tailus

  336. yohana dijo:

    hola pues me parece excelente lo que hacen, pero nesecito pedirete un favor, lo que pasa es que yo estudio ing, sistemas y me pusieron un trabajo de programacion, la verdad es que estamos trabajando con JCreator y me pusieron el siguiente trabajo, debo hacer y cuadro de texto donde permita capturar el nombre, y un boton aceptar. y esto lo debo de hacer en JFrame. espero me puedas ayudar en algo. gracias

  337. Mauricio dijo:

    Hola Jorge.

    he desarrollado un Paint con iconos e imagenes para el raton, y al ejecutarlo funciona a la perfección.

    el problema que tengo es que quiero tener mi Paint en un solo archivo (.jar) para poder ejecutarlo en cualquier PC.

    al crear el .jar sin imagenes, este si me funciona, y lo puedo llevar a donde quiera, el problema está cuando pongo las imagenes, el archivo .jar si se crea pero no se ejecuta (no abre nada).

    si sabes que puedo hacer comentamelo por favor.

    utilizo…

    lapiz.setIcon(new ImageIcon(getClass().getResource(“..\\imagenes\\lapiz.png”)));

    lo mismo que tu en tu ejemplo.

    las imagenes estan contenidas dentro de la carpeta SRC y si quedan dentro del .jar pero como te digo NO EJECUTA.

    desde ya gracias!

  338. Hola Mauricio,

    Utiliza mejor / en lugar de \\. También verifica que los nombres de los archivos sean exactamente, incluido mayúsculas y minúsculas. También revisa la extensión, a algunas personas les funciona ubicando la extensión del archivo, dentro del código Java con Mayúsculas.

    Finalmente me imagino que el error que te lanza cuando ejecutas el .jar es un NullPointerExceptio, puedes verificarlo ejecutando tú programa vía línea de comandos.

    Saludos

  339. Mauricio dijo:

    Jorge, muchas gracias por contestar.

    hice los cambios que me propuciste y nada.
    el NetBeans 5.5 lo ejecuta muy bien y el Paint funciona.

    Pero al “construir el proyecto principal F11″, si se crea la carpeta “dist” y los dos archivos (README.txt y Paint.jar).
    es el Paint.jar el que no ejecuta.

    las unicas lineas que me da Netbeans al crear el proyecto principal son:

    Created dir: C:\Users\Mauricio\Documents\NetBeans\Mios\Paint\Paint V 1.1\dist

    Building jar: C:\Users\Mauricio\Documents\NetBeans\Mios\Paint\Paint V 1.1\dist\Paint_V_1.1.jar

    //las siguientes lineas van en rojo

    To run this application from the command line without Ant, try:
    java -jar “C:\Users\Mauricio\Documents\NetBeans\Mios\Paint\Paint V 1.1\dist\Paint_V_1.1.jar”
    jar:

    muchas gracias.

  340. Nadia dijo:

    Soy de Argentina, estudio Ing en sistemas en la UTN.

    Solo queria agradecerte!!! Estuve todo el fin de semana luchando con mi proyecto de java para poder colocar un fondo en mi applet y lo logré gracias a tu pagina.

    Gracias de nuevo!!!

  341. Hola Mauricio,

    Intentaste ejecutar el .jar vía línea de comandos? Lo puedes hacer así: java -jar Paint_V_1.1.jar. También te recomiendo que si tienes bloque try, catch, imprimas la excepción que se encuentra en el bloque catch. Y así ver cuál es la excepción que se lanza. Probaste cambiando a mayúsculas la extensión del archivo (dentro del código Java). Y una pregunta final, tienes definida la clase principal dentro del proyecto de NetBeans?

    Espero tus respuestas y paciencia que la solución debe estar cerca.

    Saludos

  342. Mauricio dijo:

    hola de nuevo.

    no he podido ejecutar el jar via linea de comandos. no sé como hacerlo, pero el resto ya lo hice y como te dije, todo sigue igual.
    te agradeceria me agregues al msn para agilizarlas cosas. gracias.

    ahh voy consultar como ejecutarlo. te comento despues.

  343. Mauricio dijo:

    ya lo ejecute desde el Simbolo del Sistema en Vista
    y me imprime el siguiente NullPointerException

    Exception in Thread “main” java.lang.NullPointer….

    at javax.swing.ImageIcon.(UnKnown Sourse)
    at paintv11.Paint.(Paint.java:54)
    at paintv11.Paint.main(Paint.java:396)

    //linea 54
    ovalo.setIcon(new ImageIcon(getClass().getResource(“../imagenes/circulo.PNG”)));

    //main
    public static void main(String[] args)
    {
    Paint aplicacion = new Paint();//linea396
    aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

    Que hago??
    ahí no sé que hacer…
    reitero la invitación para el msn.
    gracias
    Mauricio

  344. Hola Mauricio,

    Para que utilizas los dos puntos en la ruta? (Aquí al inicio utilizas dos puntos ) ImageIcon(getClass().getResource(”../imagenes/circulo.PNG”)));

    Si te fijas en el ejemplo que muestro puedes ver cómo no hago uso de esos puntos. Talvez el error puede estar por ahí.

    Saludos

  345. Hola Mauricio,

    Tú problema estaba con las extensiones de las imágenes, algunas de ellas estaban en mayúsculas y otras en minúsculas, debes utilizarlas tal cual están en el archivo. También tenías una imagén (color hoja.jpg) y creo que el espacio en blanco estaba dando problemas, así que lo renombre por colorhoja.jpg. Al final todo queda así:
    lapiz.setIcon(new ImageIcon(getClass().getResource(“/imagenes/lapiz.png”)));
    borrador.setIcon(new ImageIcon(getClass().getResource(“/imagenes/borrador.png”)));
    texto.setIcon(new ImageIcon(getClass().getResource(“/imagenes/colorhoja.jpg”)));
    colorActual.setIcon(new ImageIcon(getClass().getResource(“/imagenes/colores.JPG”)));

    Espero que te sirva.

    Saludos

  346. Mauricio dijo:

    muchas gracias por tu ayuda Jorge, esto me aytuda mucho.

    es increible que algo tan sencillo de un error tan raro.

    no me explico por qué si le quito las mayusculas a la extención JPG de la imagen “colores”, todo cambia.
    por qué pasa esto?
    por que solo a algunas y no a todas?

    de todas formas muchas gracias, ya tengo mi proyecto en un solo archivo.

  347. Mauricio dijo:

    ok. ahora ya combié de proyecto, pero este apenas lo empiezo a hacer.

    hay manera de poner un gif animado de fondo como en tu ejemplo?
    lo intenté simplemente cambiando la imagen por un gif, pero solo aparece la primera imagen del gif, me gustaria que la animación se haga completa.

    me doy cuenta que en el boton si funciona, pero como lo haria sin el boton???

    Gracias

  348. mois dijo:

    quisiera que m ayudes en como mpuedo contarel numero de letras de una palabra;es decir creo un jTextfiel y al hacerle clic en un Jbotton que me muestre en otro jTextfiel el numero de letras que tiene esta palbra ::: porfa ayuda graxias

  349. Mireya dijo:

    necesito cargar los datos de un registro q estanen un jTable a jtextfield y jcombobox que se encuentran en otro formulario…..ojo mi tabla persona esta relacionada con distrito (para lo del combo)

  350. jose lopez dijo:

    demaciado bueno el tip soy estudiante de informatica enla universidad de Costa Rica y tengo que elaborar programas con JFrame pero no sabia lo de las imagenes esta muy bueno voy a usarla en mis programas para ser mejor que los demas!
    jejejejejej!!
    cualquier otro tip asi me lo mandas al correo o agregame para pasar consultas luego nos ayudamos!! yo tambien investigo mucho en internet!

  351. Maximiliano Amestoy dijo:

    jorge quiero poner solo una imagen de fondo en una ventana que tb tiene una j menu bar lo que no se es si tengo que crear un nuevo jpanel o con el JPanel jContentPane ya me da y ese initComponents no me aparece ?

  352. luis tecnologico de celaya dijo:

    !!!!!!!!!!!!!! holaaa!!!!!!!!!!11 me parecio muy buena opcion y muy entendible

    pero quiero preguntarte como le ases para que en un jframe le agreges un menu que solo me muestre texto,,

    por ejemplo que el menu se llame informacion y en el solo me muestre texto,,,

    espero tu ayuda

    GRACIASSSSSSSSSSSSSSSSSSS

  353. ZEUSMONT dijo:

    hola JORGAF podrias apoyarme, estoy intentando desarrollar en netbean, mi pregunta es como llamo mediante un boton a un jframe, es decir tengo un jframe con un boton y mediante ese boton quiero llamar a un jframe2

  354. Hola..oie xvr gracias..por el codigo..yo estoy en 2do ciclo de Informatica y estoy estudiando java ..el codigo ke nos has birndado soluciona uno de mis porblemas que tengo con las imagenes de fondo..porque se autoajusta cada vez que lo cambio de tamaño..cosa que no pasaba cuando aplicaba un jlabel…aunque yo estoy trabajando con uno de esas plantillas que birnda el netbeans pero con un par de arreglos a mi codigo pudo aplicar lo ke pusiste a mi FrameView…gracias man !
    pd: Les dejo la direccion de mi blog que trata sobre el desarrollo en el entorno Linux Ubuntu..tengo un post sobre instalacion de java eclipse y netbeans y otras cosas mas interesantes si estan intersados visitenlo…
    http://www.contribuyeconlinux.blogspot.com

  355. juan jose dijo:

    mira el ejemplo del princio esta vcan pero como se llama a la funcion public void paintComponent(Graphics g)..en ningun momento e le hace mencon como se ejecuta tonces

  356. Fredy R dijo:

    Hola a todos estoy realizando un proyecto y nesecito insertar una imagen animada en un detokpanel y no se como hacerlo si fuera una imagen normal si se puede , pero como he creado una clase Jpanel es alli donde tengo la imagen en movimiento que tambien he crado en otra clase llamado circlePanal y esa clase a su ves hereda de otra clase llamada gradientPanel y esa es la imagen que quiero cargar en el destokPanel si alguien puede ayudarme se lo agradeceria mucho

  357. omar dijo:

    Hola a todos necesito ayuda para generar histogramas y usar contraste de una imagen estoy usando jdk 1.5 pero no encuentro la forma de hacerlo alguien podria ayudarme

  358. Erick dijo:

    Hola estaba intentando poner una imagen en el JFrame en netbean 6.1 pero no sale la imagen de fondo , me compila y ejecuta pero me sale una exception es la siguiente :

    Exception in thread “AWT-EventQueue-0″ java.lang.NullPointerException
    at javax.swing.ImageIcon.(ImageIcon.java:138)
    at Fondo.GUI.Fondo.(Fondo.java:30)
    at Fondo.GUI.Inicio.(Inicio.java:21)
    at Fondo.GUI.Inicio$1.run(Inicio.java:58)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

    Ayudame con esto .

    • Hola Erick,

      Me imagino que el problema es que no encuentra la imagen. Revisa tú código y fíjate si estás utilizando la ruta correcta, además fíjate que el nombre de la imagen es exactamente igual al nombre del archivo (incluido la extensión) inclusive con mayúsculas y minúsculas.

      Coméntanos cómo te va, para ayudarte.

      Saludos desde Loja, Ecuador.

  359. cesar dijo:

    hola
    buscando en la web algún tutorial de netbeans me encontre con esta maravillosa pagina que apoya a gente que empieza en estos ambitos como yo.
    por eso felicito a las personas que se encargan de mantener este sitio.
    bueno el motivo de mi busqueda es una duda que tengo.
    ¿¿¿¿COMO HACER PARA PASAR UN DATO QUE TENGO EN UN JTEXTFIELD EN UN JFRAME A OTRO JTEXTFIELD QUE ESTA EN OTRO JFRAME?????

  360. 3dgar dijo:

    hola a todos

    la verdad apenas comienzo en lo que es netbeans y quisiera que alguien me ayude en esto. sabemos que la variables guarda la informacion temporalmente y yo quisiera guardrlo en el disco duro pero no encuentro algun codigo para guiarme, porfa si alguien me puede ayudar la verdad solo busco informacion para aprender ese lenguaje.

  361. Ivan dijo:

    Hola que tal…
    Logre hacer el ejemplo para poner una imagen de fondo en un frame esta shido men, bueno ahora me preguntaba, como utilizar el progress bar dentro de un jframe, espero no sea mucho pedir, les agradesco mucho y los felicito, me encanta su pagina, es excelente.

  362. jc dijo:

    Hola alguien me podria ayudar, la verdad no sabia donde escribir un post nuevo por mas que busque, mi problema es el siguiente estoy haciendo una interfaz en java en la cual al momento de poner un nombre aparezca inmeditamente los nombres que coincidan en la base de datos sin necesidad de precionar un boton solo al ir escribiendo, eso lo sabia hacer con ajax y php pero ahora con java no lo puedo hacer uso netbeans, me dijieron que con jsp y ajax pero no lo quiero hacer en entorno web
    Gracias espero me puedsan ayudar

  363. GABY dijo:

    Hola jorge y compañeros, estoy aprendiendo Java y necesito un poco de orientacion con respecto a un proyecto q me asignaron, es para apoyar la gestion administrativa de un cyber. se me dificulta la parte de calcular los tiempos de uso de cada usuario en internet y asi poder totalizar el precio de su consumo. coloco cronometros? de ser asi, podrian colocarse varios simultaneamente? O tal vez capturando la fecha del sistema en diferentes intervalos?? estoy un poco perdida, espero puedas ayudarme. Saludos de Venezuela.

  364. GABY dijo:

    hola de nuevo, alguien podria decirme en si, qué hace el layout.setHorizontalGroup? y el setVerticalGroup? me perdi en esa parte del codigo para agregar la imagen… si me corrio, pero no entiendo eso, disculpen mi ignorancia…

  365. Hola César,

    Te lo explico así, tienes un JFrame con el JTextField al que llamaremos origen y el segundo JFrame con el JTextField al que se llamará destino. En el origen debes crear un atributo o variable local que haga referencia al destino y cuando necesites enviar la información desde el origen al destino debes hacerlo así: destino.campoTextoDestino.setText(“tú texto”);

    Saludos

  366. Hola Hugo,

    Dos cosas para revisar: la primera la ubicación de tú imagen, recuerda que en el ejemplo que muestro la imagen está dentro de un paquete, así que debes incluirlo dentro del paquete, para ello utiliza NetBeans. Segundo el nombre y extensión del archivo en algunos SO he comprobado como una mayúscula o minúscula (en nombre o extensión) causa problemas.

    Eso te puedo recomendar.

    Saludos

  367. Hola Diego,

    Te respondo a tus 2 interrogantes. La primera me imagino que se trata de algún error en la referencia a los objetos. Verifica los nombres de las imágenes (especialmente mayús/minús). Tú segunda pregunta claro que se puede hacer inclusive puedes incluir un “mini-navegador” en tú aplicación de tal forma que se abrirá dentro de tú programa. O puedes hacer que se abra en el navegador por defecto según tú SO, para ésta opción revisa: http://cafelojano.wordpress.com/2007/08/08/otras-caracteristicas-de-swing/
    y para la primera revisa: https://jdic.dev.java.net/

    Saludos desde Loja, al sur del Ecuador!

  368. GABY dijo:

    Hola de nuevo Jorge! mil gracias por tus respuestas,.. estuve leyendo ayer que el setVertical y el setHorizontal en :

    http://java.sun.com/javase/6/docs/api/javax/swing/GroupLayout.html

    y efectivamente como me dices son parte del administrador de diseño GroupLayout, y q sirve para colocar los componentes en el orden que yo quiera, de manera secuencial, paralela etc… no sabia eso puesto que me estoy iniciando en Java mediante un curso de IBM y ahi no utilizamos NetBeans sino Eclipse, y bueno solo habia visto algunos Administradores de diseño.
    Mi pregunta ahora es, puedo agregar imagenes de fondo, tal cual como está tu codigo(usando el ImageIcon) pero usando otros administradores? es decir, GridLayout, Flowlayout,BorderLayout? osea sin usar el GroupLayout que me enreda un poquito… Gracias de nuevo y perdona la molestia.. ;0)

  369. Ivan dijo:

    Hola que tal Jorge ya logre utilizar el jprogressbar, gracias de todos modos, ahora mi duda es la siguiente:

    Yo coloco datos de una bd en mysql a un jcombo, pero lo que quiero hacer es que cuando se seleccione un elemento del combo, ver que elemento es en la bd y asi poder hacer una consulta.

    • Hola Ivan,

      De lo que puedo entender es que el combo te muestra el texto, pero tú quieres ver el id de ese elemento para poder ir a la base de datos con ese valor. Sí es así te recomiendo que leas: cafelojano.wordpress.com/2006/11/23/jcombobox-al-estilo-visual-fox/ y tendrás una idea de cómo hacerlo.

      Espero que te sirva.

  370. GABY dijo:

    JORGEEE!! Mil GRACIAS! =0) ya pude colocar AL FIN los componentes sobre la imagen sin el GroupLayout, que bien!… =0)

    Mil Gracias por tu ayuda… seguire molestandote pronto jejeje… Saludos de Venezuela…
    Bendiciones!

  371. diego dijo:

    hola, de nuevo, mil gracias por la respuesta ahora si puedo colocar imagenes a un Jframe, pero el problema es que la imagen no se adapta a mi jframe, me explico mi Jframe si se adapta a cualquier resolucion de pantalla pero la imagen no se adapta al Jframe, quisiera saber como hacer, y aparte saber si se puede centrar un JInternalFrame dentro de Jframe, gracias………

  372. diego dijo:

    hola , jorge estoy relizando una aplicacion con jframe y dentro de esta misma eh arrastrado una tabla del panel swing dentro del Jframe , lo que quisiera saber es como llenar los datos ahi de una base de datos sin crear la tabla, mas bien arrastrandola la tabla del paquete swing un Jtable.

  373. Veronica dijo:

    Hola:

    Estoy empazando a trabajar con Java pero no se como hacerle para cargar una imagen desde cualquier ruta.
    Yo en mi programa tengo un boton que se llema buscar para elegir la imagen a cargar pero no tengo ni idea de como hacerle.

    Me podrian orientar, se los agradeseria muchisimo.

  374. ROSARIO dijo:

    Hola TENGO UNA PREGUNTA COMO CAMBIO LA IMAGEN TAZA CAFE DEL JFRAME ESTA EN LA PARTE SUPERION. HAGA PARA Q UNA IMAGEN SE MUEVA DE UN LUGAR OTRO ESTARIA AGRADECIDA :)

  375. daniel dijo:

    HOLA… LA VERDA SOY NOVATO E INTENTE ESE METODO QUE PLANTEAS AL INICIO PARA AGREGARLE UN FONDO AL JFRAME.. PERO NO PUEDO NECESITO AYUDA MAS EXPLICITA… PASO POR PASO Y SABER QUE ONDA CON LA FORMA DE CARGAR LA IMAGEN A MOSTRAR… PODRIAS MANDARME TU MSN PARA CHATEAR Y VER SI PUEDES AYUIDARME PORFAVOR..

  376. hola soy estudiante de sistema, tengo una gran complicacion me dejaron hacer un pro. en netbeans v6 en el cual me pide q agregue y elimine informacion parece sencillo pero realmente no se como hacerlo lo unico q hecho es el diagrama lo facil, no tengo idea de como comenzar a programarlo.
    esta es una imagen bueno el link del diagrama

    http://www.ziddu.com/download/4251231/Captura.JPG.html

    pero no se si tengo q ocupar el Pane para hacer todo, tambien se que tengo q ocupar el JscrollPane1, si me pudieran ayudar se los agradeceira mucho

  377. César dijo:

    Hola, tengo una duda muy grande, me gustaria saber

    ¿como puedo hacer que “AL HACER CLICK EN UN BOTON, ME AGREGUE AUTOMATICAMENTE UNA PAGINA HTML EN UN JEDITORPANE”?

    lo que pasa esq hice un jframe y dentro de este jframe agregue un jsplitpane el cual lo dividi en panel de botones y jeditorpane.

  378. Yeah dijo:

    Hola, tengo una duda, a ver si me pueden ayudar.
    Estamos desarrollando una especie de reproductor que al dar al play comienza a mostrar unas imagenes.
    Nuestro problemas es que las imagenes nos salen en distintos tamaños y nos gustaria q todas estuvieran en el mismo para q quedara mas visual. ¿Como podria hacerse?
    Estamos cargando las imagenes el jLabel.
    Gracias de antemano. Un saludo

  379. Aitor dijo:

    Hola Jorge,
    Estoy trabajando con el protocolo RTP de Java Media Framework y agradecería mucho que me ayudaras a solventar un problema.
    Tengo un programa transmisor de Video RTP y otro mediante el cual lo recibo. El caso es que creo que no logro recibir bien los datos, ya que, primero el receptor identifica el transmisor, y el evento que después recibe es una recepción de StreamMappedEvent, que no logro entender que significa.
    Para que todo funcione bien necesito recibir un NewReceibeStreamEvent.
    He probado con una webcam como datasource y como un video local y no va… creo que el datasource no es el problema.

    Agradecería alguna información que pueda ser de ayuda. Gracias de antemano.

  380. Fran dijo:

    Hola Jorge,
    tengo una duda, a ver si me pueden ayudar.
    Estamos desarrollando una especie de reproductor que al dar al play comienza a mostrar unas imagenes.
    Nuestro problemas es que las imagenes nos salen en distintos tamaños y nos gustaria q todas estuvieran en el mismo para q quedara mas visual. ¿Como podria hacerse?
    Estamos cargando las imagenes el jLabel.
    Gracias de antemano. Un saludo

  381. warnn dijo:

    HOla

    executo el siguiente codigo y me queda la en blanco y no arrroja ningun error, es algun problema con el eclipse o de la machine virtual ayudenme les agradesco.

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;

    public class PonImagen extends JFrame {

    JPanel jp = new JPanel();
    Container conta = getContentPane();
    Toolkit tk = Toolkit.getDefaultToolkit();
    Image img = tk.getImage(“2.png”);

    public PonImagen() {
    conta.add(jp);
    }

    public static void main(String[] args) {
    PonImagen ponimg = new PonImagen();
    ponimg.setSize(300, 200);
    ponimg.setTitle(“Prueba de imagenes”);
    ponimg.setVisible(true);
    ponimg.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    });
    }

    public void paint(Graphics g) {
    g.drawImage(img, 10, 50, this);
    }

    }

  382. César dijo:

    Hola Jorge! Necesito dibujar el laberinto del Pac Man en un panel, nose como hacerlo!! si me podes ayudar seria buenisimo para mi ya que recien empiezo a programar en java!! Muchas Gracias

  383. Fernando Robles dijo:

    Hola muchas felicidades por tu blog, es de mucha utillidad y como ya lo han mencionado, la rapidez y la eficacia con el cual respondes las preguntas. Yo tengo una duda y espero me puedas responder, hace dias utilice este tutorial para insertar imagenes al programa, pero a la hora de hacer el autoejecutable ya no se ejecuta, es decir no me aparecen mensajes de error, pero tampoco el programa, y bueno antes lo hacia sin imagenes y funcionaba muy bien, espero me puedas ayudar en mi problema muchas gracias.

  384. julian neira dijo:

    jorge, muchas gracias por tener un espacio como estos. mi pregunta es como puedo poner un texto dentro del JFrame, trate de de hacer lo como una variable String llamada mensaje y luego la adicione al contenedor pero me da un error.
    gracias de antemano

    • Hola Julian,

      No sé si lo que quieres es mostrar un texto como parte del fondo. Si es así puedes usar el método drawString de la clase Graphics. Es decir en el método paint puedes hacer algo así:
      g.drawString(coordenax, coordenay, “Texto”);

      Saludos

  385. Marilu dijo:

    Hola Jorge, buen dia.

    Tengo una gran duda con respecto al tema de insertar imangen de fondo a algun proyecto de en java, yo estoy trabajando con el compilador JCeatorPro, nose si se trabaje de la mi sma manera manera para poder insertar imagenes de fondo.

    gracias por tu amable atencion

  386. LOVELY dijo:

    Hola Jorge!!!

    Disculpa podiras ayudarme es k tengo k hacer un proyecto en el k busk una palabra en un doc de word y extraiga su contenido en un textarea, lo intente asi

    import java.io.BufferedReader;

    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.logging.Level;
    import java.util.logging.Logger;

    public class Informe extends javax.swing.JFrame {
    private static String cadena;

    /** Creates new form Informe */
    public Informe() {
    initComponents();
    }

    /** This method is called from within the constructor to
    * initialize the form.
    * WARNING: Do NOT modify this code. The content of this method is
    * always regenerated by the Form Editor.
    */
    @SuppressWarnings(“unchecked”)
    //
    private void initComponents() {

    jInternalFrame1 = new javax.swing.JInternalFrame();
    jBAbrir = new javax.swing.JButton();
    jScrollPane1 = new javax.swing.JScrollPane();
    jTarea = new javax.swing.JTextArea();
    jButton1 = new javax.swing.JButton();

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

    jInternalFrame1.setVisible(true);
    jInternalFrame1.getContentPane().setLayout(null);

    jBAbrir.setText(“Abrir”);
    jBAbrir.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jBAbrirActionPerformed(evt);
    }
    });
    jInternalFrame1.getContentPane().add(jBAbrir);
    jBAbrir.setBounds(50, 80, 130, 23);

    jTarea.setColumns(20);
    jTarea.setRows(5);
    jScrollPane1.setViewportView(jTarea);

    jInternalFrame1.getContentPane().add(jScrollPane1);
    jScrollPane1.setBounds(200, 40, 480, 96);

    jButton1.setText(“Salir”);
    jButton1.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jButton1ActionPerformed(evt);
    }
    });
    jInternalFrame1.getContentPane().add(jButton1);
    jButton1.setBounds(60, 160, 120, 23);

    getContentPane().add(jInternalFrame1);
    jInternalFrame1.setBounds(0, 0, 740, 460);

    java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
    setBounds((screenSize.width-752)/2, (screenSize.height-521)/2, 752, 521);
    }//

    private void jBAbrirActionPerformed(java.awt.event.ActionEvent evt) {
    try {
    abrir();
    } catch (FileNotFoundException ex) {
    Logger.getLogger(Informe.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
    Logger.getLogger(Informe.class.getName()).log(Level.SEVERE, null, ex);
    }
    }

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    System.exit(0);
    }

    private void abrir() throws FileNotFoundException, IOException{
    try {

    cadena=”cierre”;
    BufferedReader reader = new BufferedReader(new FileReader(“D:/programacion/Zuñiga/prueba.doc”));
    cadena= reader.readLine();
    System.out.print(cadena);
    }
    catch (FileNotFoundException ex) {
    jTarea.setText(String.valueOf(“No se abrio el archivo”));
    //Logger.getLogger(Informe.class.getName()).log(Level.SEVERE, null, ex);
    }
    jTarea.setText(String.valueOf(“Encontro cadena: “+cadena));
    }

    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new Informe().setVisible(true);
    }
    });
    }

    // Variables declaration – do not modify
    private javax.swing.JButton jBAbrir;
    private javax.swing.JButton jButton1;
    private javax.swing.JInternalFrame jInternalFrame1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTarea;
    // End of variables declaration

    }
    pero solo me da como salida

    Ïࡱá

    caracteres raros espero me puedas ayudar

  387. Hola que tal Jorge

    Pues te comento que logre colocar una imagen de fondo a un JFRAME, gracias a tu tutorias.

    Bueno me gustaria saber si me pudieces ayudar con un JTABLE lo que pasa es que nunca e utilizado uno y pues me llamo la atencion utilizarlo para colocar mis datos de una base de datos.

    Te agredeceria mucho me ayudaras Jorge.

  388. Marilu dijo:

    GRACIAS POR LA CONTENTACION A MI PREGUNTA, PERO AHORA TENGO OTRA DUDA, QUE TIPO DE FORMATO DE IMAGEN PUEDO INSERTAR EN UN BOTON O DE FONDO EN JAVA??

  389. Marilu dijo:

    solo eh insertado imagenes con extension .gif, pero las de .jpeg no eh podido isertar, algun tips para pasarlos a .gif o com inserto la imagen??

  390. ronald dijo:

    Buenas nohces ,un user de Peru les escribe …Jorge probe tu codigo sta bien xvr, pero yo uso Eclipse y facil deberia funcionar…”deberia”
    el problema radica en lo sgte te paso el codigo del fondo chekalo>>>

    public void paintComponent(Graphics g){
    Dimension tamaño=getSize();
    ImageIcon imagenFondo=new ImageIcon(getClass().
    getResource(“/los/imagen/seven.JPG”));
    g.drawImage(imagenFondo.getImage(),0,0,
    tamaño.width,tamaño.height,null);
    setOpaque(false);
    super.paintComponents(g);

    }

    El eclipse no reconoce el setOpaque(false), algo mas el super.paintComponents(g) crees ke kambie en algo con al letra ‘s’ en la parte final lo ke se rekiere??

    gRax =)

    • Hola ronald,

      Te comento que revisé el código que se encuentra colgado en el sitio y dice: super.paintComponent(g); y no veo la ‘s’ al final de la línea. Revisé el API de Java el método setOpaque se encuentra soportada desde las primeras versiones ¿Qué versión de JDK usas?

      Saludos

  391. Josue dijo:

    Hola a todos les saludo desde Manta, Ecuador
    Necesito ayuda para realizar un proyecto en formularios hechos en Netbeans (6.1), el proyecto trata sobre el Metodo de ruffini en el cual solo se ingresa el grado del polinomio, los numeros, el valor inicial y final para calcular los puntos Y y con un boton se genere el grafico(curva) en un plano cartesiano, ojala entiendan el funcionamiento y me puedan ayudar, cabe decir que tengo conocimiento a nivel consola pero con formularios no mucha, agradezco cualquier sugerencia o ayuda de antemano…

    • Holo Josue,

      Te comento que puedes averiguar algo sobre JFreeChart que te permite hacer gráficos de varios tipos y además tiene otras características interesantes.

      Saludos desde Loja.