• Viernes 17 de Mayo de 2024, 06:31

Autor Tema:  Imagen en Jframe Help  (Leído 2040 veces)

reymersa

  • Miembro activo
  • **
  • Mensajes: 29
  • Nacionalidad: ve
    • Ver Perfil
Imagen en Jframe Help
« en: Sábado 6 de Marzo de 2010, 17:32 »
0
hola bueno estoy usando netbeans y programando interfaz grafica en java y pues quiero ponerle una imagen de fondo a un frame segun me enseñaron es con un Jframe bueno aqui medio tengo el codigo

Código: Java
  1.  String ruta = "ima.jpg";
  2.  
  3.         frame = new JFrame();
  4.         frame.setBounds(0, 0, 500, 300);
  5.  
  6.  
  7.         imagen = Toolkit.getDefaultToolkit().getImage(ruta);
  8.         MediaTracker traker = new MediaTracker(frame);
  9.  
  10.         traker.addImage(imagen, 1);
  11.  
  12.         try {
  13.  
  14.             if (!traker.waitForID(1, 1000)) {
  15.                 System.out.println("Error En la Carga de la Imagen");
  16.                 System.exit(1);
  17.             }
  18.         } catch (InterruptedException e) {
  19.         }
  20.  
  21.         can = new Tracker() {
  22.  
  23.             public void paint(Graphics g) {
  24.                 System.out.println("Entro");
  25.                 g.drawImage(imagen, 0, 0, frame);
  26.             }
  27.         };
  28.  
  29.  

y aqui tengo un frame normal con unos butttons
Código: Java
  1. Frame frame = new Frame();
  2.         Window w = new Window(frame);
  3.               w.setBounds(385, 350, 500, 300);
  4.         w.setBackground(Color.darkGray);
  5.         w.setVisible(true);
  6.          
  7.  
  8.         frame.setBounds(200, 150, 800, 600);
  9.         frame.setLayout(null);
  10.  
  11.         Button a = new Button("Jugar");
  12.         a.setBounds(40, 350, 100, 30);
  13.         a.setBackground(Color.red);
  14.         a.setEnabled(true);
  15.  
  16.         Button d = new Button("Instrucciones");
  17.         d.setBounds(40, 400, 100, 30);
  18.         d.setBackground(Color.BLUE);
  19.         d.setEnabled(true);
  20.  
  21.         Button cre = new Button("Creditos");
  22.         cre.setBounds(40, 450, 100, 30);
  23.         cre.setBackground(Color.DARK_GRAY);
  24.         cre.setEnabled(true);
  25.  
  26.         frame.add(cre);
  27.         frame.add(d);
  28.         frame.add(a);
  29.         frame.setVisible(true);
  30.  

si podrian ayudarme a ponerle la imgen o como hacerlo o que usar les agradeceria muchisisisisismo

frealgagu

  • Miembro activo
  • **
  • Mensajes: 49
    • Ver Perfil
    • http://frealgagu.4shared.com
Re: Imagen en Jframe Help
« Respuesta #1 en: Jueves 18 de Marzo de 2010, 03:55 »
0
Nunca he visto que se pueda colocar directamente una imagen en el JFRame, pero yo lo he hecho pintando un JPanel que esté contenido en el JFrame y se hace de la siguiente forma:
Código: Java
  1.  
  2.     @Override
  3.     public void paint(Graphics g)
  4.     {
  5.         g.setColor(getBackground());
  6.         g.fillRect(0,0,getWidth(),getHeight());
  7.         Image imagen = new ImageIcon(getClass().getResource("/image/ImagenFondo.jpg")).getImage();
  8.         if(imagen != null)
  9.         {
  10.             g.drawImage(imagen,0,0,null);
  11.         }
  12.         Component c;
  13.         for(int i = 0;i < getComponentCount();i++)
  14.         {
  15.             c = getComponent(i);
  16.             g.translate(c.getX(),c.getY());
  17.             c.print(g);
  18.             g.translate(-c.getX(),-c.getY());
  19.         }
  20.     }
  21.  
  22.  
De esta forma debería funcionarte correctamente.


frealgagu

  • Miembro activo
  • **
  • Mensajes: 49
    • Ver Perfil
    • http://frealgagu.4shared.com
Re: Imagen en Jframe Help
« Respuesta #2 en: Jueves 18 de Marzo de 2010, 03:59 »
0
Otra cosa que podrías hacer es la siguiente
Tienes el JFrame normalito, le agregas un JLayeredPane de la paleta, luego le agregas un panel o lo que quieras, le quitas la selección a Opaque, y luego le añades un JLabel, y le colocas la imagen al JLabel. Lo que hace JLayeredPane es dar la posibilidad de contener todos los componentes que se deseen, uno debajo de otro y en cualquier orden (A diferencia de cualquier otro Container que solo permite un componente al lado de otro)

Espero que te halla servido

Saludos,


Fredy Alberto García Güiza
Universidad Distrital Fco José de Caldas
Bogotá, Colombia