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.

750 comentarios en “JFrame con Imagen de Fondo

  1. 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.

    1. ola disculpe como puedo hacer un crucigrama en la cual debe contener si la respuesta es correcta debe aparecer una paloma o tacha

  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.

    1. 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

    2. 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

    3. 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!!

      1. 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.

      2. Hola,

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

    4. 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. 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.

    1. 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

      1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Hola tengop una duda quisiera poner una imagen en un jframe sin utilizar el jpanel ¿se podria? y como lo harias , de antemano muhisimas gracias.

  34. 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.

    1. 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»)

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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

  40. 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??

  41. 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

  42. 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

    1. 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.

  43. 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.

  44. 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?

  45. 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

  46. 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.

  47. 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.

  48. 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.

  49. 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??

  50. 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….

  51. 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!

  52. 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.

  53. 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

  54. jorge … como va…. mira tengo un problemita….necesito si o si desabilitar el boton cerrar de una ventana.¿Me podrias ayudar por favor?….gracias.

  55. 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)

  56. 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());
    }

    }

  57. 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

  58. 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

  59. 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

  60. 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.

  61. 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……..

  62. 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!!

  63. 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.

  64. 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 =)

  65. 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……..

  66. 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.

  67. 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

  68. 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

  69. 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

  70. 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.

  71. 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.

  72. 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

  73. 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.

  74. 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

  75. 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.

  76. 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

  77. 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??

  78. 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.

  79. 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……

  80. 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

  81. 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.

  82. 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.

  83. 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

  84. 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.

  85. 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.

  86. 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

  87. 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

  88. 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.

  89. 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

  90. 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 !!!!!!!!!!

  91. 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.

  92. 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…

  93. 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

  94. 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

  95. 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.

  96. 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.

  97. 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

  98. 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….!!!!

  99. 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.

  100. 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.

  101. 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 .

  102. 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.

  103. 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

  104. 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

  105. setIconImage(Toolkit.getDefaultToolkit().getImage
    ((getClass().getResource
    («/imagenes/vercarrito.gif»))));

    Con esta linea. para el icono en un jFrame

  106. 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.

  107. 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

  108. 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…..

  109. 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 !!!

  110. 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.

  111. 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.

  112. 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.

  113. 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.

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

    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…..

  115. 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?

  116. 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.

  117. 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.

  118. 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.

  119. 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. 🙂

  120. 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?

  121. 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.

  122. 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?.

  123. 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…

  124. 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, 😀

  125. 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

  126. 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

  127. 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 🙂

  128. 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.

  129. Lo necesito que sea acumulativo por todas las seciones es para guardar un numero de cotizacion y que se muestre en un jtextfield.

    Saludos.

  130. 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

  131. 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.


  132. 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

    }

  133. 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

  134. 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.

  135. 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

  136. 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.

  137. 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 🙂

  138. 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 🙂

  139. 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.

  140. 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 🙂

  141. 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

  142. 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.

  143. 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 » / » .

  144. 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);

  145. 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.

  146. 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

  147. 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!!!

  148. 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..

  149. 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

  150. 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);

  151. 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

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

  153. 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.

  154. 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

  155. 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

  156. 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

  157. 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.

  158. 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í:
    https://cafelojano.wordpress.com/2008/01/14/swing-application-framework-api-jsr-296/

    Espero que sea de tú ayuda.

    Saludos, desde Ecuador

  159. 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

  160. 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.

  161. 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……..!!!!!!!!!!!!!!!!!!!!!!

  162. 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

  163. 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

  164. 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?

  165. 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.

  166. 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.

  167. 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!

  168. 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

  169. 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

  170. 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.

  171. 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

  172. 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

  173. 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
    😦

  174. 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…

    😦 😦 😦 😦

  175. 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

  176. 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.

  177. 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.

  178. 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…

  179. 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.

  180. 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…

  181. 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.

  182. 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?

  183. 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.

  184. 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 ?

  185. 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

  186. 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

  187. 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…..

  188. 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.

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

  190. 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

  191. 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

  192. 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

  193. 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.

  194. 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

  195. Hola osvaldo procede igual que en elejemplo de la parte superior, pero cabia

    javax,swing.JPanel por
    javax.swing.JDesktopPane y listo.

    Saludos a toda la comunidad de CafeLojano

  196. 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.

  197. 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.

  198. 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.

  199. 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 ……. 😉

  200. 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

  201. 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)

  202. 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.

  203. 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.

  204. 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

  205. 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…………………… 😦

  206. 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.

  207. 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

    1. 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

  208. 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.

  209. 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.

  210. 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

  211. 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.

  212. 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!

  213. 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.

  214. 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 ?

  215. 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

  216. 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

  217. 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.

  218. 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 😦

  219. 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

  220. 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

  221. 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.

  222. 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 😐

  223. 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…..

  224. 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?

  225. 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);
    }
    }

  226. 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

  227. 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)

  228. 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

  229. 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.

  230. 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

  231. 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.

  232. 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….

  233. 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….

  234. 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

  235. 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;
    }
    }

    }

  236. 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

  237. 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

  238. 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;
    }
    }

    }

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

  240. 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

  241. 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.

  242. 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.

  243. 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

  244. 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

  245. 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

  246. 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.

  247. 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

  248. 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.

  249. 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

  250. 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

  251. 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

  252. 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…

  253. 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

  254. 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

  255. 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

  256. 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…. 😛 , bye

  257. 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

  258. 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

  259. 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.

  260. 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

  261. 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

  262. 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

  263. 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

  264. 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

    }

    }

  265. hola jorge como va…..
    te comento q’ el problema de las imagenes ya lo resolvi , 😀
    * 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 ….!!!!

  266. 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!!

  267. 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!

  268. 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…

  269. 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.

  270. 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!

  271. 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

  272. 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

  273. 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…

  274. 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.

  275. 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á.

  276. 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…

  277. 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.

  278. 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

  279. 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…. 😦

  280. 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!!

  281. 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.

  282. 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??

  283. debo crear una clase que contenga un objeto de tipo Icon?? con que atributos?? con que metodos?? o explicame que debo hacer por favor

  284. 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

  285. 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

  286. 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

  287. 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

  288. 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«

  289. 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

  290. 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 😦

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

  292. 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

  293. 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

  294. 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

  295. 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

  296. 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.

  297. 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

  298. 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();
    }

  299. 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 😦

  300. 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

  301. 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??

  302. 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.

  303. 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…

  304. 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

  305. 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

  306. 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

  307. 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

  308. 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

  309. 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

  310. 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

  311. 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

  312. 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.

  313. 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…

  314. 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 😉

  315. 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???

  316. 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

  317. 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.

  318. 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.

  319. 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 ……………….

  320. 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.

  321. 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.

  322. 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

  323. 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.

  324. 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

  325. 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

  326. 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

  327. 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

  328. 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!

  329. 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.

  330. 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!

  331. Hola buena aportacion

    Pero yo tengo un problema al correrlo no puedo me dice que hay un error con el

    paintComponent(graphics g)

    me podria ayudar forfa

  332. 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

  333. 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.

  334. 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.

  335. 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

  336. 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

  337. 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();
    }

  338. 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

  339. 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

  340. 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…

  341. 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

  342. 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

  343. Hola Manuel,

    La solución que aquí se muestra se puede aplicar no solo a JFrame sino que ha cualquier contenedor, como el que tú estás utilzando, así que trata de aplicar la solución que te propongo.

    Saludos y coméntame tú avance.

  344. 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!

  345. 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

  346. 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.

  347. 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!!!

  348. 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

  349. 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.

  350. 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

  351. 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

  352. 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

  353. 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.

  354. 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

  355. 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

  356. 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)

  357. 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!

  358. 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 ?

  359. !!!!!!!!!!!!!! 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

  360. 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

  361. 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

  362. 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

  363. 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

  364. 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

  365. 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 .

    1. 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.

  366. 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?????

  367. 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.

  368. 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.

  369. hola jorge yo tembién estoy intentando con imagen en Jframe y tengo problemas me baje tu codigo y a pesar que solo le cambio la imagen me sale error

  370. 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

  371. 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.

  372. 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…

  373. 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

  374. Hola 3dgar,

    Pues la única manera es utilizando archivos. Si solamente quieres almacenar el valor de una variable puedes utilizar archivos de texto y si quieres grabar todo un objeto busca información sobre serialización.

    Saludos

  375. 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

  376. 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: https://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!

  377. 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)

  378. 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.

    1. 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.

  379. 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!

  380. 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………

  381. 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.

  382. 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.

  383. 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 🙂

  384. 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..

  385. 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

  386. 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.

  387. 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

  388. 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.

  389. 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

  390. 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);
    }

    }

  391. 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

  392. 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.

  393. 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

    1. 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

  394. 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

  395. 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

  396. 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.

  397. 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??

  398. 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??

  399. 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 =)

    1. 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

  400. 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…

  401. hola…. lei la solucion q brinda, pero mi consulta es ¿como puedo colocar una imagen a las ventanas creadas en eclipse?…………si supiera, le agradeceria anticipadamente por la rpta. gracias……….. espero alguien pueda contestarme 🙂

  402. Ok se puede incrustar una imagen en el Jpanel. Mi pregunta es si es posible incrustar un swf (archivo de flash) dentro de java. Porque por mas que busco no encuentro soluciones claras como esta.

  403. Hola aqui traigo un pequeñito problema que hasta la fecha aun no logro resolver, resulta que debo de establecer una imagen en un Jpanel, pero esta debe ser seleccionada desde un jComboBox, has de cuenta que cuando abres el combo box y seleccionas Foto2, se ponga la fotografia en el Jpanel, ya no doy con bola, tengo como 1 semana y ½ buscandolo haha saludos

    1. Hola Kelele Head,

      Creo que podrías hacer lo siguiente:
      Te creas un atributo tipo ImageIcon. Cuando se da una acción sobre el JComoBox, configuras el atributo del tipo ImageIcon algo así: mageIcon imagenFondo=new ImageIcon(getClass().
      getResource(”/los/imagen/img01.png”)); con el valor de la imagen que corresponde y llamas al métod updateUI. La solución que te propongo está en base a la hecho en el ejemplo de éste post por lo que el método paintComponent no debería tener la línea: ImageIcon imagenFondo=new ImageIcon(getClass().
      getResource(”…..

      Saludos

  404. hola jorge, primero te felicito por este gran foro, estas al tanto de todas las pregutnas que te hacen los chicos, ahora me toca preguntarte una cosa.

    Estoy trabajajando con un sistema en java se , y necesito colocar un calendario , ¿ se puede coolocar un calendario en un JFrame o JDialog ? ¿Como lo hago?..

    Espero tu respuesta…. gracias

  405. Hola Jorge!
    Primero que nada está muy bueno tu blog, te felicito! Gracias por ayudar a tantas personas 🙂

    Probé el ejemplo que posteaste, pero cuando llamo al JFrame que tiene el fondo solo veo la imagen, y no veo los otros componentes que ya tenía mi frame 😦 la imagen lo tapa todo. Cómo puedo solucionarlo?
    Gracias desde ya 😀 un saludo grande
    Vanesa

    1. Hola Vanesa,

      Te comento que los componentes se deben ubicar dentro del JPanel. El ejemplo muestra un JFrame y un JPanel, en el JPanel se ubican los elementos cuadros de texto, botones, etc, no en el JFrame. O podrías implementar el método paintComponent directamente en el JFrame y dejar de lado el JPanel y así podrías trabajar.

      Saludos desde Loja

    2. Hola Vanesa,

      Te comento algo: el JFrame no soporta el método paintComponent ya que pertenece a otra jerarquía de objetos diferente a la del JPanel. Ahora puedes usar el método paint en lugar de paintComponent. Algo así:

      public void paint(Graphics g){
      Dimension tamanio = getSize();
      ImageIcon imgFondo = new ImageIcon(getClass().getResource(«Imagenes/Cielo.jpg»));
      g.drawImage(imgFondo.getImage(), 0, 0, tamanio.width, tamanio.height, null);
      setOpaque(false);
      super.paint(g);
      }

      Y esos métodos paintComponent y paint se llaman automáticamente cuando se crean y muestran los elementos.

      Saludos

  406. hola jorge … Por las dudas ¿ sabe un javadoc en español o un IDE Netbeans en español ? .. si me aconsejas un IDE , por favor que sea el mas actualizado, plissssssssss …. gracias. y si me decis un javadoc ¿ como lo incorporo despues a mi IDE netbeans ? …. mil gracias

  407. Hola!

    Alguien me puede ayudar, estoy aprendiendo recien con netbeans 5.5.1, y lo que necesito es implementar el juego pacman, si alguien me puede facilitar el codigo les agradecere bastante. gracias.

  408. Hola Jorge!!!! Aquí Irene desde Argentina! Soy vieja en sistemas pero muy joven en java.
    Buscando en internet por una inquietud, dí con esta página. Realmente te admiro y te felicito por la pasión que ponés. Pensar que la escribiste hace 2 años y la gente te sigue haciendo preguntas!
    Soy de aquellas persona que antes de pedir ayuda leen absolutamente todo lo que encuentran, dado que considero que es la mejor manera de aprender. Pero ando con una inquietud que me tiene muy nerviosa y que no logré encontrar en ningún lado y es la siguiente:
    Ojo, te aclaro que la pregunta es muy boba y te vas a reir seguramente al leerla, pero a mí me tiene loca y no logro encontrarle la vuelta:
    Estoy desrrollando un proyecto en java con netbeans. Dentro un internalFrame, tengo varios
    formattedTextField, por ejemplo una para ingresar una fecha. Al abrir la ventana, la fecha ya viene con la fecha del día. Si la quiero modificar, no sobreescribe sino que inserta los nuevos valores, obligándome a mí deletear los valores viejos. Y aquí viene mi pregunta:
    Existe alguna manera de que no inserte sino que sobreescriba?
    GRacias y te mando un gran saludo a vos y a toda tu querida Loja!
    Irene.

    1. Hola Irene,

      No me queda muy claro pero si quieres que se sobre escriba deberías seleccionar el contenido y con el contenido seleccionado ingresar. Se me ocurre que cuando el elemento (JFormattedTextField) gane el foco (programa el evento focusGained) se llame al método selectAll() del JFormattedTextField y así puedas sobreescribir sin necesidad de borrar.

      Espero que éstas líneas te ayuden a resolver tú problema.

      Saludos.

      1. Hola Jorge. Soy Irene de vuelta. Gracias por contestar a mi pregunta tan rápidamente!
        Te cuento que probé lo que me sugeriste y no se resolvió. Programo el evento focusGained(), hago un selectAll(), pero sigue insertando caracteres en lugar de sobreescribirlos. Por ejemplo, a un campo con formato de fecha dd/MM/yyyy, le asigno previamente la fecha corriente. Al abrir la ventana me aparece como
        25/06/2009. Cuando quiero modificar la fecha, por ejemplo por la de ayer, me aparece 2425/06/2009, o sea, no reemplaza el 25 por el 24 sino que lo inserta.
        Probé también con otros eventos, como los de caret y los eventos key, pero tampoco. Sigo investigando por internet, pero no encuentro nada al respecto. Es raro, no?
        No sé. si se te ocurre alguna otra cosa, hacemela saber. Si Yo encuentro alguna solución, prometo comentarla en este foro!
        Muchísimas gracias de nuevo, y te mando un gran saludo!
        Irene.

      2. Hola a tods aquellos que están interesados en seguir aprendiendo de la mano de Jorge.
        A Jorge ya le contesté via mail, pero quería compartir con quien quiera la solución brindada por Jorge.
        El tema del selectAll() para los formattedTextFields funciona perfectamente aplicando el bug que menciona Jrge más arriba. Para los textFields comunes no es necesario aplicar ese bug, simplemente se coloca esa instrucción al implementar el evento focusGained.
        Lo que hace el selectAll() es mostrar el campo en pantalla, pero al tipear algún otro valor, borra el valor anterior y lo reemplaza por el nuevo tipeado.
        Les mando un saludo a todos,
        Irene.

  409. la neta ayuda estoy re wey y no se como hacer un frame quien me ayuda yo se que es cosa del kinder pero sy nuebo en java asi y que porfavor ayudenme

  410. Hola Jorge he visitado tu pagina y me parece fenomenal, estoy cursando ultimo semestre de informatica en Colombia y me apasiona esto del java, en estos momentos le estoy dando duro a este cuento de solo codigo para un futuro poder migrar a Netbeans o Eclipse, por el momento estoy desarrollando una miniaplicacion, en realidad es un minijuego, un tetris y mi duda consiste en poder colocar botones superpuestos en java.
    Es decir cuento con una matriz de botones de 10×20 que se me imprime cuando inicio la aplicacion, pero luego en tiempo de ejecucion necesito agregar botones encima de esta matriz, el lio consiste en que todos los componentes sean botones, labels etc… que creo en tiempo de ejecucion y posiciono sobre la matriz me quedan debajo de esta y se me muestran como ocultos….

    Y ijole no he podido dar con el chiste de colocar estos nuevos componentes creados en tiempo de ejecucion encima de esta matriz…

    Si me puedes ayudar te agradezco….

  411. Hola nuevamente.
    Asesorada por Jorge llegué a implementar la manera de sobreescribir unJFormattedField con formato de fecha dd/MM/yyyy.
    El código es el siguiente:

    ftfFecha es mi formattedTextField fecha.

    Implemento el evento focusGained():

    private void ftfFechaFocusGained(java.awt.event.FocusEvent evt) {
    SwingUtilities.invokeLater(new Runnable(){
    public void run(){
    // selecciono los 2 digitos para el dia
    ftfFecha.select(0,2);
    }
    });

    Implemento el evento keyPressed() para que al presionar la tecla enter pase al mes o al año:

    private void ftfFechaKeyPressed(java.awt.event.KeyEvent evt) {
    // tomo el codigo de la tecla
    //que disparo el evento
    int tecla=evt.getKeyCode();
    if (tecla==10){
    // si la tecla presionada es Enter
    // tomo la posicion en quedo el caret
    int unCaret=ftfFecha.getCaretPosition();
    if (unCaret==2){
    // si la posicion es 2 selecciono los 2 digitos del mes
    ftfFecha.select(3, 5);
    } else if (unCaret==5) {
    // si la posicion es 5 selecciono los 4 del año
    ftfFecha.select(6,10);
    } else {
    //sino valido la fecha
    // codigo para validar
    }
    }
    }

    Espero les sirva.

    Y gracias Jorge nuevamente,
    Irene.

  412. Hola Jorge:
    Soy Irene nuevamente. Ahí mandé el código para sobreescribir un formattedTextField, pero no sé porqué aparece antes del 29/06/2009.

    Ahora se me ocurrió otra pregunta:

    Yo puedo armar una clase CampoFormateadoFecha que extienda de JFormattedTextField y que implemente los métodos focusGained() y keyPressed() y que yo la pueda incorporar a la paleta del Netbeans, así lo tomo directamente de la paleta y no necesito desarrollar siempre lo mismo cada vez que quiero incorporar un campo de este tipo en alguna ventana?
    Creo que es algo de java beans. El tema es que no entiendo cómo se hace para transformar esa clase en un bean.
    Saludos,
    Irene.

  413. Ho.a jorge tengo un pequeñisimo problemita mira ya ise todo le puse el fondo pero cuando llevo el ejecutable a otro lugar es decir fuera de todo source solo lleve el ejecutable bueno el problema es q la imagen no se veia como podria hcer para q kede en el ejecutable es decir permanente

  414. Buenas tengan todos, jorge tnego una gran duda, estoy trabajando en mi pc que tiene la ide netbeans 5.5.1 y el jdk 6 update 2… descargue tu proyecto xk nada mas no me salia lo de cargar la imagen en el jframe lo cual me resultaba extraño porke segun yo estaba bien el codigo, despues de descargarlo rapidamente lo corri y se ejecuto bien, lo cual me parecio mas raro xk el codigo estaba igual, y solamente importe una imagen al proyecto tuyo que descargue …

    … modifique el nombre de la imagen y me mando los mismos errores que me generaba con mi proyecto original, errores de excepciones null pointer…

    las imagenes que intente cargar eran jpg, por lo que imagino que el error es del netbeans o del jdk porke solo tu imagen me corre bien… aki esta un video que hice para que te des una idea http://www.megaupload.com/?d=QO1T1VVF

    ke me recomiendas, descargarme el jdk 5??

    salu2 y ke chidos aportes a la comunidad hispana en java

  415. Jorge, que tal, cool.. una preguntota… resulta ser que tengo dentro de jpanel una imagen, pero al cambiar de aplicación a otra elimina la imagen del jpanel, es decir si estoy en el frame y presiono windows+D ó si minimixo el frame de igual manera borra la imagen dentro del jpanel, anexo código ,

    private void mostrarImagen(File file) {
    PanelImagen imgPanel = new PanelImagen(file, this.pnlImagen.getWidth(), this.pnlImagen.getHeight());
    this.pnlImagen.removeAll();
    this.pnlImagen.add(imgPanel);
    this.pnlImagen.repaint();
    }

    public void cargararchivo(){
    JFileChooser fc = new JFileChooser();
    fc.setFileFilter(new FileNameExtensionFilter(«Archivos de imagen»,»jpg»,»jpeg»,»gif»,»bmp»));
    previews.setText(«Cargando Imágen…»);
    int opcion = fc.showDialog(this, «Open»);
    if (opcion == JFileChooser.APPROVE_OPTION) {
    File file = fc.getSelectedFile();
    //System.out.println(«File Selected»+file);

    // boolean correcto = file.renameTo(fichero);

    ruta = file.getPath();
    //archivo=file.renameTo(fichero);
    //System.out.println(«Image Rename»+correcto);
    //ruta.toCharArray();
    this.imagen = Toolkit.getDefaultToolkit().getImage(file.getAbsolutePath());
    MediaTracker tracker = new MediaTracker(this);
    System.out.println(«ruta «+ruta);
    tracker.addImage(this.imagen, 1);

    this.mostrarImagen(file);
    try {
    if (!tracker.waitForID(1, 100000)) {
    System.out.println(«Error en la carga de la imagen»);
    //System.exit(0);
    }
    } catch (InterruptedException e) {
    System.out.println(e);
    }
    //this.mostrarImagen(file);
    //this.mostrarImagen(file);
    // this.cargaDirectorio(file.getParent());
    previews.setText(«Imagén Cargada…»);
    w = this.imagen.getWidth(this);
    h = this.imagen.getHeight(this);
    // System.out.println(«La ruta de la Imagen es:» + ruta);
    previews.setText(«\n Características de la Imagén:» + «\n\n» + » Ancho de la Imagén» +
    «:» + w + » pixeles» + «\n\n Alto de la Imagén» + «:» + h + » pixeles» + «\n\n\n Cantidad de Pixeles son: » + w * h);
    }
    }

    ¿podrías proporcionarme tu punto de vista..?
    Saludos
    Cayetano…

  416. Hola oye veo que eres muy bueno para esto de la programacion en JAVA, tengo una pregunta espero este a tu alcance la respuesta, lo que pasa es que estoy desarrollando una aplicacion en NetBeans 6.1, mi aplicacion debe ocupar toda la pantalla, y no se debe minimizar al utilizar la combinacion de teclas «Windows» + «D», como sabemos esta combinacion de teclas lo que hace es ocultar todas las ventanas activas, como puedo hacer para que mi aplicacion no se minimize?

  417. necesito saber como puedo imprimir una informacion de una base de datos en mysql utilizando netbeans si alguien me puede ayudar le agradeceria

  418. Una pregunta Prof. Jorge!!!

    Ud. ha trabajado con J2me?? yo necesito hacer lo siguente para ver si me puede ayudar al respecto:

    Yo intento mostrar imagenes en mi aplicacion J2me, esta imagen es enviada por us servidor j2se que esta contenida en una base de datos. mi aplicacion movil recibe en un String esa imagen, luego yo la convierto en un arreglo de byte, pero necesito saber como hago para q a partir de ese arreglo de byte yo pueda crear esa imagen y mostrarla en mi aplicacion movil!! no se como hacerlo!!

    tengo en un vector todod los arreglos de bytes q contienen la imagenes, y para ver alguan imagen yo necesito decifrar esos bytes y convertirlos en la imagen q me fue enviada por la base de datos del servidor!!!

    Saludos!!!

  419. Hola , tengo una consulta soy nuevo en java e intentado de implementar tu ejemplo JFrame con Imagen de Fondo , haciendo exactamente lo que dices en el JFrame a la hora de instanciar el pnlFondo me sale error y no me permite hacerlo :

    public llamada() {
    initComponents();

    ImagePanel pnl = new ImagePanel();
    // en esta linea me subraya de rojo ImagePanel(), por q me sale este error

    this.add(pnl,BorderLayout.CENTER);
    this.pack();

    }

    he copiado exactamente el ejemplo que pones .espero que me puedas ayudar muchar gracias de antemano

  420. Saludos espero estes bien, me gustaria saber como hago para que tu codigo me funsione que lo necesito de verda me gsutaria hacer una imagen tal cual como tu la haces, pero quiero saber que librerias usas y tudo lo desmas!! enviame el codigo completo a mi correo por favor…

  421. ok muchas gracias otra pregunta necrsito saber si me puedes dar algunos link om pag que pueda vistar dond tnga mas informacion sobre tutoriales de java, necesito hacer un juego en java para mi proyecto universitario es mas o menos parecido a gound bound de hecho tngo q simular el juego como yo lo prefiera… espero me puedas ayudar gracias!!

  422. con respecto a net beans tengo una pregunta ya realize lo que es todo mi formulario pero tengo que cambairle el icono de la taza de cafe y quitarle los botones de maximizar y minimizar.
    pero ya le intente y nomas no……si me puedn ayudar de antemano gracias

    1. Hola jose,

      Para cambiar el icono revisa el link: http://www.java2s.com/Code/JavaAPI/javax.swing/JFramesetIconImageImageimage.htm

      Para el quitarle los botones, desde NetBeans, seleccionas desde el inspector el JFrame, en la paleta de propiedades buscas la opción resizable y las desmarcas. La acción anterior no te quita el botón sino que lo deshabilita. Y para el botón minizar no conozco cómo hacerlo.

      Espero tus comentarios

      1. hola gracias por la ayuda…

        mi programa consiste en comparar nombre de usuario y la contraseña y si son correctas que mande a llamar al 2 formulario jframe

        y eso lo aplico con condiciones utilizando if

        pero cuando le introdusco el codigo al boton aceptar no hace nada…
        principal l= new principal();
        l.setVisible(true);
        this.setVisible(false);

        …..
        segun tengo k crear 3 paquetes : gui,main, yla parte logica del programa donde va el if

        cuando creo mi proyecto ay una opcion que dice si quiero establecer el main y loy que no y creo otro donde le doy q si ….la diferencia es que cuando ejecuto el de la 2 opcion no aparece mi formulario y en el otro si……..

        por su ayuda gracias

      2. jose,

        Lo que yo haría sería lo siguiente: para la parte del login crearía un JDialog ya que es modal y tiene las características que éste tipo de componente requieren. Un JDialog no puede ejecutarse por si mismo, por lo que deberías ejecutar el JFrame, pero lo puedes dejar deshabilitado mientras muestras el JDialog de login y mientras el usuario no ingresa su contraseña. Eso en grandes rasgos.

        Saludos.

  423. Hola a todos tengo una pregunta…

    Sabes que me encuentro desarrollando un proyecto y me gustaria sabes si me podrian ayudar con lo siguiente… Resulta que quiero insertar un dato a la base de datos ingresandolo desde un textbox el IDe usado es el NetBeans usando la plataforma RIA GWT..

    Espero me puedan ayudar por lo que les quedo muy agradecido….

    Saludos..

  424. QUIERO QUE ME AYUDEN A PROGRAMAR UNA INTERFAZ PARA CALCULAR SUMA, RESTA, MULTIPLCACION, ADEMAS PROGRAMAR AHY MISMO EL BOTON CALCULAR , RESULTADO, VOLVER, LES AGRADESCO

  425. GRACIAS POR LA AYUDA.
    DISCULPA POR RESPONDER HASTA AHORA
    PERO NO TENIA INTERNET
    YA PUDE CON LO DE MI PROYECTO

    TENGO OTRA DUDA COMO METER UN FORMULARIO DENTRO DE UN FORMULARIO PERO EN CODIGO. YA NO ESTOY UTILIZANDO NETBEANS SI NO JCREATORPRO

    1. Hola jose,

      ¿Un formulario dentro de otro? Te recomiendo que trabajas con clases JPanel, ya que un JFrame puede incluir varios paneles y así lograrías lo que necesitas (al menos como yo lo entiendo). Además te recomiendo que leas algo sobre Layout para que aprendas a realizar la distribución de los componentes.

      Ahora el código que te genera NetBeans es puro Java y podrías copiarlo y ponerlo en cualquier editor de código Java, siempre y cuando ambos IDE, en tú caso NetBeans y JCreator, trabajen con la misma versión del JDK. Lo único que hace NetBeans es proporcionarte un editor visual nada más.

      Saludos

  426. hola jorge ..me iamo melissa y tengo un problema…recien estoy aprendiendo too esto..pero ise el codigo y me compila too ..pero no me aparece la imagen me podrias ayudar por favor

    1. Hala melissa,

      Cuando no se muestra la imagen generalmente suelen ser errores en el nombre de la imagen revisa que el nombre esté exactamente escrito según el nombre del archivo, además de la extensión, incluido mayúsculas y minúsculas.

      Revisa mis ideas y me comunicas si funcionó o no.

      Saludos.

  427. Muchachos no me sirvio lo del jframe, quisiera saber si se puede hacer con un panel dentro del jframe y sin necesidad de hacer una clase jpane y llamarla desde el jframe, cualquier cosa x favor me avisan….

    1. Estimado JAHIR,

      El programa funciona (lo he probado en Windows, Mac y Linux) sin problema, posiblemente tienes algún error, el más común es que no encuentra la imagen. Revisa los comentarios y encontrarás algunas recomendaciones y errores.

      El método paint también se encuentra definido para la clase JFrame, así que lo mismo funciona, puedes sobreescribir el método paint de la clase JFrame con los mismos pasos que se hace en el JPanel.

      Saludos

  428. hola Jorge..

    sabes que en este momento estoy haciendo mi obligatorio y necesitaba poner una imagen a mi JFrame y me pasa que tu codigo me compila todo ok pero en mi programa no me funca, leei todos los post pero nada es como lo que me pasa a mi hasta el punto en que modifico la imagen de tu codigo pintandola etc y me sigue apareciendo la imagen de Ingapirca si modificar osea es como que ni siquiera puedo cambiar la imagend e tu proyecto te pido por favor que em ayudesssss

    espero tu pronta respuesta
    muchas gracias

  429. hola Jorge

    tengo un problemita cargo el codigo que subiste pero no lo puedo incorporar a mi codigo.
    Probe cambiando la imagen de tu proyecto y ni eso funca osea es como que no puedo cambiar la imagen no se porque espero puedas ayudarme
    muchas gracias

    1. Hola keke,

      Revisa los comentarios ahí les doy cierta recomendaciones y soluciones a algunos problemas parecidos. Generalmente tiene que ver con el nombre de la imagen y el nombre que usamos en NetBeans. Si tienes algún avance me lo comunicas.

      Saludos

  430. hola Jorge encontre estapagina y me gustaria que me ayudaras en un proyecto de clases…
    Yo soy nuevo en esto de programar pero me interesa mucho, pero se me esta dificultando un poco.
    mi proyecto consiste en un visor de imagenes las cuales tienen que llamarce con un boton y estas tienen que tener movimiento….
    porfa ayudame.

    armando.

  431. Hola… tengo una duda, yo estoy haciendo un juego que es un blackjack, pero tengo un problema y es que en un jframe puse de fondo la imagen de la mesa… y en un jpanel puso el dibujo de las cartas, es decir que ahi esta todo el juego se mueven y todo… pero quiero que esas cartas me salgan sobre la mesa pero no he podido agregar el jpanel…. por favor una ayudita que no se que hacer… y es para un proyecto URGENTE gracias…

  432. Hola… tengo una duda, yo estoy haciendo un juego que es un blackjack, pero tengo un problema y es que en un jframe puse de fondo la imagen de la mesa… y en un jpanel puso el dibujo de las cartas, es decir que ahi esta todo el juego se mueven y todo… pero quiero que esas cartas me salgan sobre la mesa pero no he podido agregar el jpanel…. por favor una ayudita que no se que hacer… y es para un proyecto URGENTE gracias…

  433. hola jorge: nose si aun te meteras aqui.
    en realidad encontre esto buscando de google y me parecio muy interesante.

    te queria pedir ayuda por si tienes algun codigo en que me ayude.
    este es mi segundo lenguaje de programacion que tengo . y en realidad me ha costado demasiado. me pidieron como trabajo final hacer en netbeans como una base de datos de alguna empresa o local de peliculas en donde se ingresen los datos i todo eso en un entorno grafico. sabes como puedo hacerlo? en realidad no se utilizar nada de interfaz ya que solo me enseñaron lo basico . si puedes ayudarme city.iquique@gmail.com estaria eternamente agradecida muchisimas gracias

  434. primero dejame darte las gracias por tu aporte me ha servido de mucho, soy nuevo en la programacion, ya e logrado poner un gif De fondo en un jpanel y a su vez a un jframe gracias a la informacion que nos proporcionaste, pero tengo un pequeño inconveniente el Jframe me sale minimo de mas o menos 20*150; mi pregunta es como puedo iniciarlo maximizado, ya e usado este comando «setExtendedState(JFrame.MAXIMIZED_BOTH);». aqui esta el link del proyecto para que lo veas

    http://www.megaupload.com/?d=8WPF8CEI

    espero tu ayuda muchas gracias

    1. Hola Juan Ibarra,

      También he usado el setExtendedState cómo lo mencionas y me ha funcionado, sino mal no recuerdo todo depende de configurar la propiedad ésta antes de llamar al método pack(); Haz la prueba llama primero a setExtended… y luego al pack.

      Si no es así, pues me avisas para revisar algo de código en dónde lo usé.

      Saludos.

  435. Hola!!!,me gustaria q me ayudes con un codigo. mira, si yo ingreso desde la web a mi correo solo basta q ponga mi correo y mi contraseña y justo despues de haber puesto mi contraseña al hacer enter carga!!! quiero hacer eso mismo pero no con web sino en un Jframe simple en java, crees poder ayudarme!!! para eso uso un JTextFieldPassword

  436. Y dime como crearia ese JDialog, porq es la primera ves q lo escucho de manera muy separada de un JOptionPame, me puedes ayudar porfavor ? para poder utilizarlo?

  437. Hola Compadre.
    Tal vez me pueda compartir el ejercicio completo de la parte de arriba no estudio pero entiendo un poco de java y me gustaria aprenderlo. Muchas gracias

  438. hola que tal.

    hice el ejercicio de colocar la imagen, y aya esta.

    pero necesito que me ayuden a ponerle sonido a mi aplicacion quisiera que alguien de auxiliara,xfa
    gracias

  439. Con unos compañeros de U estamos tratando de hacer un juego similar al ajedrez. queria saber como podría hacer para tener n casillas y que estas respondieran ante el evento de que el mouse las clickeara o les pasara por encima. pillé un ejemplo que lo hacia con JPanels, pero el código me tiraba cantidad de errores. lo segundo [y mas importante] es si me podrías recomendar algun buen tutorial en internet en el cual aprender a usar las librerias para trabajo con imagenes 2D de Java [swing, awt y Java 2D]. Finalmente, ultimamente mi IDE [netbeans] se ha trancado cantidad de veces con comandos, y siempre me tira el error: «cannot find symbol», me lo ha tirado por crear un objeto de una clase [no reconocia la clase, lo que si esta la cree luego de escribir el main], o el initComponents(); siendo que tenia importadas las librerias que lo incluian. queria saber a que se debe este error.

    De antemano, mil gracias!

  440. import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;

    public class window extends JFrame{
    public window ()

    {
    this.setSize(400,500);
    this.setTitle(«primer aplicacion swing»);
    this.setVisible(true);

    }
    public static void main (String[]args){

    { new window ();

    JFrame jFramewindow=new JFrame();
    jFramewindow.setSize(400,500);
    jFramewindow.setTitle(«segunda aplicacion swing»);
    jFramewindow.setVisible(true);

    }
    }

    como pudo ponerle imagen ah las dos ventanas q salen porfavor ruego su ayuda espero respuestas por mail
    victor_14geminis@hotmail.com

  441. hola soy estudiante del sena y necesito saber si ese codigo para poner la imagen sirve para q la imagen maximise con el formulario a la hora de maximixzar la ventana agradesco su respuesta de antemano
    «necesito respuesta urgente»
    porfavor si se puede responder a mi correo
    darkangelcl10@hotmail.com

  442. Tengo un problema con su código, cuando hago subversion y abro mi proyecto en otro Pc, me da un error y no se ejecuta el jFrame. Debe ser algo relacionado con l aimagen pero no entiendo el qué!

    Gracias.

  443. Hola Jorge .. mira tengo un problema .. me piden para crear una pantalla con una imagen en 2D puede ser d un restaurant .. pero quiere q sea modificable .. Por ejemplo si en el abm de mesas habilito otra mesa mas tiene q aparecer en mi imagen una mesa q pueda ubicar en un lugar especifico del restaurante .. No se si me explico .. lo que quiero es ir insertando o eliminando imagenes de mesas y darle la posibilidad a mi usuario de ubicar la mesa en el lugar correspondiente (en el que el decida).. Espero cualquier respuesta y desde ya muchas gracias ..

  444. HOLA!!! NECESITO ayuda PORFAVOR con una tarea de java en netbeans 6.8 la tarea consta:
    con interfaz grafica que permita agregar,modifcar, eliminar y buscar el registro de alumnos (el programa cuando se introduzca el carne, nombre y apellido del alumno debe mostrarlo en la tabla si se desea modificar o elimnar se selecciona la fila y se seleciona el boton correspondiente)
    ____________
    carné: |___________|
    nombre: |_________|
    Apellido: |_________|

    —————————————-
    | Carné | Nombre | Apellido| ▲|
    —————————————-
    |_______|_________|_______|__|
    |_______|_________|_______| |
    |_______|_________|_______|__|
    |_______|_________|_______|▼ |

    (agregar) (eliminar) (buscar) (modificar)

  445. hola, soy alan y ahora se me presenta un problema y es q mi profe kiere q haga un sistema de ventas y en realidad nose como hacerlo por esi pido su ayuda, espero q me pueda ayudar en este trabajo y todo eso debe ser creado en netbeans.
    bueno le dejo mi correo para q me pueda escribir:
    solitario_albre_492@hotmail.com

    bueno espero su respuesta pronto

  446. por fin encontre la soluciooooooooooonn

    SIN NADA DE ESTAR COMPLICANDOSE DE MUCHO CODIGO

    YO LES DARE LA SOLUCION….(CON NETBEANS)

    1. pegar la imagen en la carpeta SRC de tu proyecto o Source package

    2. A LA ETIQUETA OSEA jLabel1 o a la que le quieras poner imagen le das clic derecho>>

    propidedades>>icon y te aparece un menu despegable con el nombre de las imagenes ke tengas en source … La selecconas y Listooooo!!

    publico esto para ayudarles ya ke ami si me consto mucho buscar pero ps es muy sencillo =D

    .::samuyk2::.

  447. holaaaaaaaaaaaaaaa
    muchas gracias profe pr brindarnos tanto apollo, se que es un poco tarde pero me gustaria saber como puedo enlazar un boton con otro, que al momento que le de clic al boton me arroge a otra pantalla porfa. y muchas gracias

  448. No soy el profe…!!
    (la solucion ke explico es Utilizando el netBeans IDE )
    creo ke lo que necesitas es en tu codigo del boton le pones JFrame2.visible(true)
    o no recuerdo si es .show(true) y al JFrame1.visible(false)

    algo asi :S jeje

    tal ves te ayude mi comentario perla, sino ps hay vayale buscando jejej … asi encontre solucion al de la imagen 😀

    salu (1+1)

    suerte (Y)

  449. hola buen dia, necesito saber q parte de las propiedades de un jframe en netbean, puedo desahabilitar el boton minimizar maximizar y cerrar?

    gracias por su respuesta…

  450. Saludos
    creo todo segun lo explicado y me genera el siguiente error
    Exception in thread «AWT-EventQueue-0» java.lang.ClassCastException
    ayuda porfa…..

  451. quiero q me ayuden con este proble, soy novato en esto de progra pero quisiera q me ayudaran
    les dejo una imagen donde muestro el problema o lo que deseo hacer

  452. Porfavor quisiera saber como podria hacer para poder, poner un video dentro de un formulario en netbeans, (para invocarlo)desde un formulario…porfavor me seria de mucha ayuda, muchas gracias .
    Atte: Andree.

  453. Escuchen para poner una imagen de fondo en primer lugar no se necista escribir el mismo codigo en cada ventana a crear.
    Lo que se necesita es crear una libreria .jar con el siguiente codigo
    /**
    *Propiedad de Eosx
    *Compilado por Nati
    *EosSoft
    */
    package Visual.Javax;

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;

    /**
    *Clase para colocar una imagen de Fondo
    *
    */
    public class Circe extends JPanel{

    JFrame i;
    Dimension p;
    ImageIcon fig;
    JInternalFrame ix;
    JApplet ixp;

    public Circe(JFrame f,ImageIcon figura){

    this.i=f;
    this.fig=figura;

    this.setVisible (true);
    this.setLayout (null);

    }
    public Circe(JInternalFrame fx,ImageIcon figurax){

    this.ix=fx;
    this.fig=figurax;

    this.setVisible (true);
    this.setLayout (null);

    }
    public Circe(JApplet fxp,ImageIcon figuraxp){

    this.ixp=fxp;
    this.fig=figuraxp;

    this.setVisible(true);
    this.setLayout(null);
    }

    public void paintComponent(Graphics g){
    p=getSize();
    g.drawImage(fig.getImage (),0,0,p.width,p.height,null);
    super.paintComponents (g);
    }
    }

    Compliamos y creamos un archivo .jar

    Asu vez colococamos este archivo en la maquina virtual de java mas exactamente. en
    C:/Archivos de Programa/Java/Jres/ext/el_archivo.jar

    Luego lo unico que tenemos que hacer es import el paquete en cada JFrame o JApplet o JInternalFrame
    es decir

    import Visual.Javax.Circe;

    Veamos un ejemplo como se usa la libreria

    package eoslinebank;

    import java.awt.event.*;
    import javax.swing.*;
    import java.awt.*;
    import java.io.*;
    import Visual.Javax.Circe;

    public class EosLineBank extends JFrame{

    private JOptionPane MsgBox;
    private int inset=100;
    private Container c;
    JMenuBar barra;
    JMenu mnClientes,mnPrestamos,mnQuery;
    private JDesktopPane desk;
    private JPanel panel;
    protected Image icono;
    protected Circe cr;
    public ImageIcon img_fondo;

    public EosLineBank(){

    this.setTitle(«EosLineBank»);
    c=getContentPane();
    c.setLayout(null);

    Dimension d=Toolkit.getDefaultToolkit().getScreenSize();
    this.setBounds(inset,inset,d.width-inset*2,d.height-inset*2);
    this.setExtendedState(this.MAXIMIZED_BOTH);

    this.desk=new JDesktopPane();
    this.desk.setBounds (0,0,d.width,d.height-80);
    this.desk.setLayout (null);
    this.desk.setOpaque (false);

    this.icono=Toolkit.getDefaultToolkit ().getImage (getClass().getResource («/eoslinebank/Iconos/gancho.gif»));
    this.img_fondo=new ImageIcon(getClass().getResource («/eoslinebank/Iconos/fondo.jpg»));

    this.setIconImage (icono);

    c.add(desk);

    this.cr=new Circe(this,img_fondo);
    cr.setBounds (0,0,d.width,d.height-80);
    c.add(cr);

    //Sub_Menus para Clientes

    this.barra=new JMenuBar();
    this.mnClientes=new JMenu(» Clientes «);
    this.mnPrestamos=new JMenu(» Prestamos «);
    this.mnQuery=new JMenu(» Consultas «);

    JMenuItem nc=new JMenuItem(» Nuevo «);
    nc.setToolTipText(«Registre un nuevo cliente en el sistema«);

    JMenuItem view_clientes=new JMenuItem(«Ver Todos»);
    view_clientes.setToolTipText(«Genere todos los clientes registrados en la base de datos»);

    JMenuItem tran=new JMenuItem(«Deposito/Retiro»);
    tran.setToolTipText(«Realice depositos o retiros a los clientes ya registrados«);

    this.mnClientes.add(nc);
    this.mnClientes.add(view_clientes);
    this.mnClientes.add(tran);

    //Sub_Menus para prestamos

    JMenuItem itm_prestamo=new JMenuItem(» Registar Prestamos «);

    this.mnPrestamos.add(itm_prestamo);

    this.barra.add(mnClientes);
    this.barra.add(mnPrestamos);
    this.barra.add(mnQuery);

    this.setJMenuBar(barra);

    this.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent t){

    MsgBox.showMessageDialog(null,»Gracias pos su visita»,»EosLineBank»,MsgBox.INFORMATION_MESSAGE);
    System.exit(0);

    }
    });
    nc.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent t){
    NuevoCliente cn=new NuevoCliente();
    desk.add(cn);
    cn.setVisible(true);
    }
    });

    view_clientes.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent t){
    ViewClientes vc=new ViewClientes();
    desk.add(vc);
    vc.setVisible(true);

    }
    });
    tran.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent g){
    Transac t=new Transac();
    desk.add(t);
    t.setVisible(true);
    }
    });
    this.addMouseListener (new MouseAdapter(){
    public void mouseEntered(MouseEvent t){
    cr.setBounds (0,0,getWidth (),getHeight ()-50);
    }
    });
    itm_prestamo.addActionListener (new ActionListener(){
    public void actionPerformed(ActionEvent t){
    Prestamos prs=new Prestamos(getWidth (),getHeight ());
    desk.add(prs);
    prs.setVisible(true);
    }
    });

    }

    public static void main(String[]args){
    try{
    // UIManager.setLookAndFeel(«com.sun.java.swing.plaf.windows.WindowsLookAndFeel»);
    UIManager.put(«AuditoryCues.playList»,UIManager.get(«AuditoryCues.allAuditoryCues»));
    JFrame.setDefaultLookAndFeelDecorated (true);
    JDialog.setDefaultLookAndFeelDecorated (true);
    EosLineBank elb=new EosLineBank();
    elb.setVisible(true);
    }
    catch(Exception e){
    JOptionPane.showMessageDialog(null,»Se han presentado Errores\nPosible Causa «+e.getCause()+»\nCall Stack «+e.getStackTrace(),»EosBankLine»,JOptionPane.ERROR_MESSAGE);
    Mensaje mj=new Mensaje(e);
    mj.setVisible(true);

    }
    }
    }
    class Mensaje extends JFrame {

    private JTextArea area;
    private Container c;
    private PrintStream d;

    public Mensaje(Exception e) {
    try{

    this.setTitle(«Causas de Error»);
    c=getContentPane();
    c.setLayout(null);
    this.setBounds(0,0,500,600);
    // e.printStackTrace(d);

    area=new JTextArea();
    area.setText(«Causa «+e.getCause()+»\n»);
    area.setBounds(10,10,400,500);

    c.add(area);

    this.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent t){
    System.exit(0);
    }
    });
    }
    catch(Exception ex){
    ;
    }

    }
    }

    Esta una forma que se basa en el uso del classpath

    Si queremos aun mas funcionalidad
    dentro de nuestra aplicacion creamos una carpeta llamada lib y colocamos nuestro archivo.jar dentro de esata capeta, importamos la libreria en nuestro archivo y listo compliamos y debe correr, la ventaja de esta forma es que nuetsra aplicacion mostrara la imagen en cualquier imagen donde se ejecute. sim importar el classpath que es el inconveniene de la primera forma
    pues usando la primera forma , si tratamos de correr la aplicacion en cualquier otra maquina tendremos problemas por que la esa maquina no tiene la libreria en su classphat
    sin embargo con la suguna accion no hay incovenenientes

    La segunda forma es en la que se basa NetBean, Eclipse, Jbuilder para poder mostrarnos imagenes no importanto donde se instale

  454. Salvedad:
    el paquete que use se llamo package eoslinebank
    asi que cuando compilemos esta carpeta se creara y alli dentro se depositaran todos archivos .class que java genera (el bytecode)
    asi que nuestras imagenes tambien deben estar entro de esta carpeta.
    lo que eox sugiere es crear una carpeta dentro de la que genera java por accion de nuesto paquete.

    mas practico seria:
    eoslinebank/Nueva Carpeta/icono.fi
    eoslinebank/Nueva Carpeta/tapiz.gif

    Por ultimo la liberia nos serviria para poner un fondo a un JFrame, un JApplet, o un JInternalFrame

    UTP PANAMA

  455. Hola a Todos cualquiera que me pueda ayudar con lo siguiente de antemano se lo agradezo:

    Uitilize el metodo que esta al inicio de la pagina de como agregar imagenes a un formulario, y en netbeans me corre bien, pero cuando creo el jar desde netbeans las imagenes no se ven en el fondo de los formularios, cualquiera que me ayude a solucionar este problema se loa gradezco muchas gracias,

  456. Muy buen aporte.
    Una pregunta…
    hize un boton y le di events/action/actionperformade

    a ese boton quiero que al apretarlo salga una ventana con una imagen, como le hago?

  457. hola kien me podria dar clases de netbeans 6.8 y tambien conectarla con la misma base de netbeans… y cuanto me costaria… ecuador-Guayaquil

  458. Necesito ayuda con un programa, la verdad soy nuevo en esto y necesito saber como mover imagenes con el mouse, intente con mouseDragged, pero cuando colocaba varias imagenes se movian todas al mismo tiempo. gracias y disculpen la ignorancia, espero me puedan ayudar..

  459. disculpenme pero tengo una duda wenu un incoveniente lo qe pasa es que tengo 2 jframes pero en el principal quiero mandar a llamar el otro pero no con botones sino con eventos del teclado :

    ejemplo si presionams la tecla 1 nos manda a llamar el otro jframe y se oculta el otro y si presionamos alguna otra tecla nos muestre un mensaje de «»tecla incorrecta» se los agradeceria de antemano ….
    pd utilizo netbeans…. ._.

  460. Hola haber si me pueden ayudar estoy realizando un proyecto en java que desde un evemto de un formulario principal debe llamar a otro formulario secundario pero pasándole valores del formulario principal, como lo puedo hacer haber si me pueden hechar una mano
    Desde ya muchas gracias

  461. Hola a todos, eh leido sus comentarios y estan buenos, ahora tengo una duda soy nuevo en lo que es programacion, java. Pero tego dudas de como hacer un copilador en java. alguien me puede dar una idea de como iniciar. Se los agradeceria bastante.

  462. buenas noches me podrian ayudar , sobre los menus y un submenu que llame aun formulario como se puede realizar estoy aprendiendo resien pero no me sale

  463. hola quisiera que me digan por favor por que me sale error a la hora de agregar una imagen a mi ventana en codigo es el siguiente:

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;

    public class intefaz1 extends javax.swing.JFrame
    {
    private javax.swing.JButton boton1;
    private javax.swing.JButton boton2;
    private javax.swing.JLabel label1;
    private javax.swing.JLabel label2;
    private javax.swing.JLabel label3;
    private javax.swing.JPanel panel1;
    private javax.swing.JTextField texto1;
    private javax.swing.JPasswordField pasword;
    private javax.swing.JCheckBox casilla;
    private javax.swing.ImageIcon imagen;

    public intefaz1 ()
    {
    initComponents();
    }
    private void initComponents()
    {
    boton1 = new javax.swing.JButton();
    boton2 = new javax.swing.JButton();
    label1 = new javax.swing.JLabel();
    label2 = new javax.swing.JLabel();
    label3 = new javax.swing.JLabel();
    panel1 = new javax.swing.JPanel();
    texto1 = new javax.swing.JTextField();
    pasword = new javax.swing.JPasswordField();
    casilla = new javax.swing.JCheckBox();
    imagen = new javax.swing.ImageIcon(«C:/lacrimosa.jpg»);

    getContentPane().setLayout(null);

    addWindowListener(new java.awt.event.WindowAdapter()
    {
    public void windowClosing(java.awt.event.WindowEvent evt)
    {
    exitForm(evt);
    }
    });

    label1.setFont( new Font( «Arial», Font.BOLD, 14) );
    label1.setText(«Ingrese su Nombre y Contraseña»);
    getContentPane().add(label1);
    label1.setBounds(85, 10, 250, 20);

    label2.setText(«Nombre de Usuario»);
    getContentPane().add(label2);
    label2.setBounds(20, 60, 150, 20);

    label3.setText(«Contraseña»);
    getContentPane().add(label3);
    label3.setBounds(20, 100, 150, 20);

    texto1.setText(«»);
    getContentPane().add(texto1);
    texto1.setBounds(150, 60, 150, 20);

    pasword.setText(«»);
    getContentPane().add(pasword);
    pasword.setBounds(150, 100, 150, 20);

    boton1.setText(«ACEPTAR»);
    getContentPane().add(boton1);
    boton1.setIcon ( new ImageIcon («c:/iconos/208.jpg»));
    boton1.setBounds(80, 180, 120, 26);

    boton2.setText(«CANCELAR»);
    getContentPane().add(boton2);
    boton2.setIcon ( new ImageIcon («c:/iconos/132.jpg»));
    boton2.setBounds(210, 180, 120, 26);

    panel1.add(imagen);
    getContentPane().add(panel1);

    pack();
    java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
    setTitle(«AUTENTIFICACION»);
    setSize(new java.awt.Dimension(400, 290));
    setLocation((screenSize.width-400)/2, (screenSize.width-550)/2);
    }

    private void exitForm(java.awt.event.WindowEvent evt)
    {
    System.exit(0);
    }

    public static void main (String arg[])
    {
    new intefaz1().show();
    }
    }

    desde ya gracias

    1. Hola Franklin,

      Deberías empezar por revisar el error y subirlo para tener una idea más clara de lo que sucede. Mientras tanto revisa que el archivo de la imagen se encuentre en la ruta que haz especificado, revisa también el nombre y la extensión del archivo (inclusive mayúsculas y minúsculas) con lo que tiene tú código fuente.

      Saludos y espero que puedes resolver tú problema.

    2. cual revisa el mensaje que te da cuando compilas (javac) y fijate en las lines que te dice donde esta el error y postea esas lines junto con las librerias que importaste… fijate quisas haya un error en la clase que creaste para los componentes (imagenes y figuras)

  464. 🙂 gracias se agradece soy alumno de Ing. en informática de la Utecnológica de chile (inacap)
    y te agradesco este super aporte, asi podre hacer mi sistema de tesis no tan `plano 🙂 GRX

  465. hola hola!!
    estoy haciendo un programa que es un registtro medico de alumnos..
    me gustaria saber como insertar la fecha y el dia en un jLabel o en un JtextField..
    y tmbn quisiera saber como guardar la informacion que el usuario introduce en cada jtext field en un archivo de texto.. o si no pz meterlo a una base de datos aunque sea mas complejo…!!

    agradeceria tu ayuda muchiisiimo! :d

  466. Hola, soy nuevo en esto y quisiera saber como meter una imagen en un jbutton en Netbeans…..y tambien como cambiarle de color a un JForm porsupuesto tambien en Netbeans…

  467. hola soy nuevo en esto de programacionquise hacer un tablero de ajedrez con jcreator por un trabajo de la escuela y no corrio alguien ,e podria decir que significan estos errores -» java.lang.NoSuchMethodError: main
    Exception in thread «main»
    Process completed.»- y no me corre el programa que me falta y se crea unarchivo em bloc de notas con el nombre de «Para Acabar»
    aqui les dejo mi codigo en ventana
    /**
    * @(#)Tablero.java
    *
    *
    * @author
    * @version 1.00 2011/2/23
    */

    import java.awt.*;
    import java.awt.event.*;

    public class Tablero extends Frame {
    public Tablero() {

    // titulo, estilo, tamaño y posición iniciales
    setTitle(«Tablero»);
    setBackground(Color.green);

    // ventana centrada
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int ancho=300, alto=350;
    setSize(ancho, alto);
    setLocation(d.width/2-ancho/2,d.height/2-alto/2);

    // preparamos el layout de la ventana
    setLayout(new BorderLayout(20,20));

    // ponemos la etiqueta
    Font fuente = new Font(«Arial», Font.BOLD, 20);
    Label etiq = new Label(«A J E D R E Z «, Label.CENTER);
    etiq.setFont(fuente);
    etiq.setForeground(new Color(100,0,50));

    add(etiq, BorderLayout.NORTH);

    // preparamos el tablero; será el panel central
    Panel tablero = new Panel();
    tablero.setLayout(new GridLayout(8,8));

    for (int i=1; i<=8; i++)
    for (int j=1; j<=8; j++)
    if ((i+j) % 2 == 0) {
    Button blanca = new Button(" ");
    blanca.setBackground(Color.white);
    blanca.setEnabled(false);
    tablero.add(blanca);
    }
    else {
    Button negra = new Button(" ");
    negra.setBackground(Color.black);
    negra.setEnabled(false);
    tablero.add(negra);
    }

    // lo ponemos en el centro
    add(tablero,BorderLayout.CENTER);

    // tablero para los botones
    Panel botones = new Panel();
    Button empezar = new Button("Empezar");
    Button acabar = new Button("Acabar");
    // no dejamos que pulsen acabar si no se está jugando
    acabar.setEnabled(false);

    botones.add(empezar);
    botones.add(acabar);

    add(botones, BorderLayout.SOUTH);

    // paneles para dejar margen a la izquierda y a la derecha
    Panel izq = new Panel();
    Panel der = new Panel();
    add(izq,BorderLayout.EAST);
    add(der,BorderLayout.WEST);

    // añadimos la escucha para cerrar la ventana
    addWindowListener(new ParaAcabar());
    }
    }

    // clase para cerrar la ventana
    class ParaAcabar extends WindowAdapter {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    }

    1. Angel,

      Ese error lo que señala es que no tienes ninguna clases que tenga el método public static void main (String args[]) { … }

      En Java debe existir una clase que posea este método. Me imagino que tú clase Tablero es la que tiene que mostrarse, así que dentro del método main deberías crear un objeto de la clase Tablero.

      Saludos, desde Ecuador

  468. gran foro .
    mira yo quiero poner en un panel una imagen gif con animacion esto se pone facilmente en un jlabel pero no se como hacerlo para un panel cuando lo hago solo sale el primer fotograma y no se mueve nada me ayudarias mucho gracias de antemano . uso netbeans 6.8

  469. tengo una duda a ver si me pueden ayudar como creo una linea con Graphics pero con retraso de tiempo es decir que se valla creando un cachito cada segundo o milisegundo. como si fuera una animacion donde la linea se va alargando

  470. hola he visto su pagina y nose si me pueda ayudar con esto
    Es que tengo un proyecto haber un jframe que contiene a un jdialog y este contiene otro jdialog. Tambien tengo una clase que sirve para grabar los datos en la Bd de access son 4 partes no.
    jframe llama al jdialog por un boton y este tiene un boton nuevoel cual me debe mostrar el segundo jdialog que tiene 2 textfield y un boton guardar
    cuando clikeo el boton guardar me tiene que pasar los datos con las siguientes
    lineas pero me sale error
    ObjGrupo.Codigo= TxtCodigo.getText();
    ObjGrupo.Nombre=TxtNombre.getText();
    ObjGrupo.Grabar();
    esto servia cuando tenia un jinternal frame pero estos no pueden ser modales
    asi que puse el jdialog y no me pasa los datos con este no se que me falta o que tengo que hacer
    si es que me puede ayudar
    muchas gracias de antemano
    o si no para poner mas codigo
    y disculpen que sea tan explicito o no no se
    Espero lo entiendan

  471. buenos dias necesito ayuda en un proyento intento agregar una imagen a un cursor pero nada de lo que hago funciona. solo desaparece el cursor cuando me acerco al panel. si alguien puede ayudarme por favor.

  472. Creo que este post fue algo muy complicado, se tomo muchas molestias para un simple fondo. Primero que todo crea un paquete y lo llenas de las imagenes que queras, luego Usted coje una etiqueta la pega sobre el jFrame o JDialog la expande sobre todo el panel y le da click contario – Propiedades – Icon, despues en archivo le da seleccionar y seleciona el paquete, despues mas abajito aparece imagen externa, selecciona la que quiere y listo el pollo

    1. Bueno antes de ver esta informacion, hice exactamente lo mismo que dices, y se coloca el fondo fino con una etiqueta, el detalle esta en que no puedes colocar botones, panel de texto,etc encima de la imagen o por lo menos yo no lo pude hacer:s!

  473. Buen Aporte!
    Holaa! Buenas noches! Mil gracias por este aporte! particularmente a ha servido de mucho en mi proyecto! gracias por compartir tus conocimientos!:)

  474. Buenas, segui todos tus pasos, exepto lo de colocar un JPanel, a pesar de eso funcionó, pero colocandose el fondo en el JFrame.
    Despues cuando quize corregir, coloqué un JPanel y los elementos que estaban en el mismo JFrame los coloque dentro del JPanel.
    Lo malo ahora esque el fondo sigue en el JFrame y no en el JPanel.
    Cual es el error, si no he cambiado en nada el código.
    Gracias.

    1. Encontré una forma fácil y rápida de colocar un fondo a un JFrame o JPanel: Con JLabel, a pesar que el video está en ingles, se entiende bien los procedimientos.

  475. Como puedo hacer la comparcion una variable de tipo string(Cadena) en netbeans
    Alguien me puede ayudar?
    se los agradeceria mucho.

    1. con .equals(«»), te devuelve: verdadero o falso, si tu String(Para este ejemplo MiString) es igual a otro String(En este ejemplo «Comparacion»).

      Boolean Resultado=MiString.equals(«Comparacion»)

  476. hola amigo espero y estes bien soy algo nuevo en esto de programacion la cuestion es que tengo que hacer una aplicacion de escritorio (en java) que es un reloj checador entradas y salidas de personal y la verdad no tengo ni la menor idea de como empezar no se si me puedas dar una idea de mas o menos esta el codigo gracias

  477. HOLA!!! espero m puedan ayudar estamos realizando un proyecto en BlueJ ya m sale el frame con los datos los ingreso y me los muestra , ahora lo siguente es q los datos q ingrese me los muestre en un archivo txt y no en el frame, x favor spero m puedad ayudar

  478. hola esta muy buena esta pagina, tengo una duda, estoy con mi proyecto de titulacion pero el problema es que cuando hago ejecutable mi proyecto y lo corro en otra maquina las imagenes se mueven, intente con tu ejemplo pero me salen varios errores, declaras algunas variables o que librerias mandas llamar, y no se si tengas informacion acerca de reportes espero y me puedas ayudar saludos…

  479. Tengo un duda que no he podido resolver, ojala profe pueda ayudarme
    … tengo 3 clases….. la clase principal en donde esta el main y desde ahí se controla a la clase ventana en la cual hice la ventana con sus dimensiones y le agregue un JMenu llamado barra y a este agregue elementos JMenuItem llamado cargar, gris, blanco y negro, …luego desde esta clase controlo la clase llamada JPanelImagen en la cual agrego un imagen al panel… mi pregunta es… como hago para que al presionar la opción cargar, la imagen se muestre en pantalla, luego al presionar gris la imagen cambie a gris , lo mismo al presionar blanco y negro, la imagen se vuelva en blanco y negro.??.. los algoritmos para que se transformen en gris y blanco y negro ya los tengo y los agregue a la clase JPanelImagen
    se que se usa el ActionListener para los eventos pero en este caso no se como implementarlos.

  480. hola Jorge:
    mira yo solo quiero hacer una pregunta, como finciona un JFileChooser(),
    para poder dar la opcion al usuario de cambiar la imagen, que pusiste de ejmplo hasta arribototota, con el que empieza toda esta página.

    salu2 y gracias

  481. hola bueno soy nuevo programando y quisera saber como puedo abrir un Jframe dentro de otro Jframe con otros tipos de datos

    tengo la clase Hospital y La clase Jefes lo que quiero es que la clase hospital en su Jframe tenga el btoJefes y ese me dirija al Jframe de Jefes en el cual debo ahcer lo mismo pero con el btoFuncionarios , muchas gracias

  482. DIOS LOS BENDIGA A TODOS.
    SOY NUEVO ESTOY APRENDIENDO JAVA
    JORGE TENGO UNA PREGUNTA PARA TI, EL DOCUMENTO ImagenJFrame QUE APARECE EN LA VENTANA DERECHA HACE REFERENCIA A TODO TU PROGRAMA?

  483. hola necesito ayuda, tengo que hacer una interfaz con menu y en un boton del menu necesito darle un click y que se me habra un panel de coleres para cmabiar el color de fondo de la jframe

  484. un favor, me puedes indicar que pasos seguir para jalar una imagen desde access a netbeans. Estoy haciendo una base de datos (un sistema de registro de alumnos) y en netbeans presento los datos (que los jalo de access), el problema es que no se como hacer para mostrar en netbeans la imagen de un alumno que esta almacenado en access (no se tampoco como almacenar la imagen en access)

    muchas gracias!!

  485. Hola Jorge antes q nada te mando un saludote desde Mexico D.F.
    Oye lo que pasa s q sty investigando d como le puedo hacer para incertar una imagen n un applet de java y de ahi jalarlo desde HTML espro tu respuesta y muchas graxias…. se ve muy interesante tu pagina adios.

  486. Hola q tal apenas estoy incursionando en la programacion de java en netbeans kiero agregar una imagen en un jlabel pero como le hago para ajustar la imagen al tamaño q kiero me parece q la imagen tiene q ser .icon podrian resolver mi duda gracias

  487. Hola que tal… me gustaria saber como hago para colocar la imagen asi en jpanel .. y que al ejecutar y agrandar o minimizar la ventana(jframe) la imagen quede del tamaño de este…

  488. holaa hola me gusta pero necesito que alguien me ayude me dejaron un trabajo en netbeans donde tenga un frame principal y ahi tenga un usuario y una contraseña si son incorrectos me mande un mensaje de error y si son correctos me mande a otro frame en el cuan diga bienvenido y tenga 3 menu item el primero va hacer don de intridusca el Id, Nombre, Apellido,RFC, e-mail de un trabajador y cuando le de clic ahi me mande a un INTERNALJFRAME donde pueda introducir esos datos y los cuales yo tenga un boton con laopcion de guardar otro boton con la opcion de limpiar otro con la opcion salir y otro boton con la opcion de nuevo, cuando le de salir me mande denuevo a la pagina de bienvenida y el en cual eliga en el menu la opcion de desplegar trabajador cuando de clic me mande a un INTERNAL FRAME en el cual tenga las opciones de Id,nombre,apellido,RFC,e-mail y que tenga un boton con la opcion de mostrar cuando le de clic me muestre el registro que hice y si tengo varios que muestre el siguiente o el anterior plis necesito una gran ayudar si me puedes ayudar porfavor

  489. Hola, trate de hacer este ejemplo pero me salen 3 errores en la clase principal, donde dice initComponents(); y PnlFondo dice «cannot find symbol» symbol: class FrmPrincipal found: PnlFondo. Me pueden ayudar???

  490. disculpa tuve problema de colocar mi imagen de fondo hice lo mismo que dijiste mas solo me mostraba mi jpanel pero sin la imagen de fondo uso netbean 7.3.1

  491. mas facil asi,,,,,este codigo lo investigue y lo reduci asi

    ((JPanel) getContentPane()).setOpaque(false);
    ImageIcon imagen = new ImageIcon(this.getClass().getResource(«/imagenes/fondo.png»));
    JLabel fondo = new JLabel();
    fondo.setIcon(imagen);
    getLayeredPane().add(fondo, JLayeredPane.FRAME_CONTENT_LAYER);
    fondo.setBounds(0, 0, imagen.getIconWidth(), imagen.getIconHeight());
    this.add(fondo, BorderLayout.CENTER);
    this.setSize(fondo.getWidth(), fondo.getHeight());
    this.setLocationRelativeTo(null);

    eso es todo.cc

  492. hola que tal, muy buen aporte solo que tengo un problema para poner una imagen de fondo.. al introducir el código me marca un error en el «ImagenIcon» al querer solucionar este erro netBeans me dice que creara la clase «imagenIcon» con su respectivo constructor pero al crearlo me sigue marcando error. Que es lo que contiene esta clase o como puedo solucionar este problema?

    Saludos de Guadalajara Mx

  493. disculpen estoy empezando aprendiendo en netbeans y necesito que me ayuden en este problema en el cual debo Desarrollar una aplicación que cambie los colores de fondo de una caja de
    texto al hacer click en un botón. Los colores son: rojo, verde, azul y amarillo
    Ejemplo: la palabra
    _Amarillo________, _Aqui el color_________
    Azul
    Verde
    Amarillo

  494. me sale error
    public void paintComponent(Graphics g){
    Dimension Tamaño = getSize();
    ImageIcon imagenFondo =new ImageIcon(getClass().
    getResource(«/los/imagen/madera.jpg»));
    g.drawImage(imagenFondo.getImage(),0,0,
    aqui ======> tamaño.width, tamaño.height,null);
    setOpaque(false);
    super.paintComponent(g);
    }

  495. ola tengo un problema sobre jcheckbox de java en jframe para seleccionar y a la vez seleccione la imagen pero me sale error

Replica a KURIEL Cancelar la respuesta