Programación General > Java

 Imagen en Jframe Help

(1/1)

reymersa:
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 --- String ruta = "ima.jpg";         frame = new JFrame();        frame.setBounds(0, 0, 500, 300);          imagen = Toolkit.getDefaultToolkit().getImage(ruta);        MediaTracker traker = new MediaTracker(frame);         traker.addImage(imagen, 1);         try {             if (!traker.waitForID(1, 1000)) {                System.out.println("Error En la Carga de la Imagen");                System.exit(1);            }        } catch (InterruptedException e) {        }         can = new Tracker() {             public void paint(Graphics g) {                System.out.println("Entro");                g.drawImage(imagen, 0, 0, frame);            }        };  
y aqui tengo un frame normal con unos butttons

--- Código: Java ---Frame frame = new Frame();        Window w = new Window(frame);              w.setBounds(385, 350, 500, 300);        w.setBackground(Color.darkGray);        w.setVisible(true);                  frame.setBounds(200, 150, 800, 600);        frame.setLayout(null);         Button a = new Button("Jugar");        a.setBounds(40, 350, 100, 30);        a.setBackground(Color.red);        a.setEnabled(true);         Button d = new Button("Instrucciones");        d.setBounds(40, 400, 100, 30);        d.setBackground(Color.BLUE);        d.setEnabled(true);         Button cre = new Button("Creditos");        cre.setBounds(40, 450, 100, 30);        cre.setBackground(Color.DARK_GRAY);        cre.setEnabled(true);         frame.add(cre);        frame.add(d);        frame.add(a);        frame.setVisible(true); 
si podrian ayudarme a ponerle la imgen o como hacerlo o que usar les agradeceria muchisisisisismo

frealgagu:
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 ---     @Override    public void paint(Graphics g)    {        g.setColor(getBackground());        g.fillRect(0,0,getWidth(),getHeight());        Image imagen = new ImageIcon(getClass().getResource("/image/ImagenFondo.jpg")).getImage();        if(imagen != null)        {            g.drawImage(imagen,0,0,null);        }        Component c;        for(int i = 0;i < getComponentCount();i++)        {            c = getComponent(i);            g.translate(c.getX(),c.getY());            c.print(g);            g.translate(-c.getX(),-c.getY());        }    }  De esta forma debería funcionarte correctamente.

frealgagu:
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

Navegación

[0] Índice de Mensajes

Ir a la versión completa