Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   imagen en GridLayout (http://www.forosdelweb.com/f45/imagen-gridlayout-609306/)

cuncanchun 25/07/2008 11:54

imagen en GridLayout
 
hola:

Yo se que para cambiar el color de fonde de un GridLayout se hace asi:

p2=new JPanel(new GridLayout(5,1,5,5)); //aqui lo creo
p2.setBackground(Color.red); //le doy color

pero lo que yo quiero es en ves de un color una imagen de fondo.


como lo puedo hacer??

vdpazmino 25/07/2008 12:01

Respuesta: imagen en GridLayout
 
Si quieres poner una imagen de fondo podrias hacer esto: crear una clase que extienda de jpanel, luego sobreescribes el metodo paintComponent(Graphics g)

Código PHP:

paintComponent(Graphics g){
     
super.paintComponent();
     
g.drawImage(Imagenxy);


salu2

cuncanchun 25/07/2008 13:32

Respuesta: imagen en GridLayout
 
No entiendo muy bien:

como quedaria dicha clase?

vdpazmino 25/07/2008 18:49

Respuesta: imagen en GridLayout
 
Te pongo un ejemplo mas completo

Código PHP:

public class MainDesktopPane extends JPane{

    private 
Image image;
    
    public 
MainDesktopPane() {
        
super();
        
image = new ImageIcon(getClass().getResource("/images/fondo.jpg")).getImage();
    }

    @
Override
    
protected void paintComponent(Graphics g) {
        
super.paintComponent(g);
        
int h = (int)image.getHeight(null)/2;
        
int w = (int)(image.getWidth(null)/2);
        
int x = (int)getWidth()/w;
        
int y = (int)getHeight()/h;
        
g.drawImage(imagexynull);
    }


La clase lo que hace es colocar la imagen fondo.jpg como fondo en el jpanel, lo coloca en el centro del jpanel

espero que te ayude

salu2

djagu_26 25/07/2008 20:54

Respuesta: imagen en GridLayout
 
Hola otra forma es setearle un borde que tenga la imagen en mi ejemplo tengo un paquete en mi proyecto llamado Icons donde pongo todas las imagenes, asi cuando genero el jar van embebidas dentro te dejo el codigo y cualquier cosa me preguntas

saludos

Código:

import java.awt.Component;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Insets;
import javax.swing.ImageIcon;
import javax.swing.border.Border;

/**
 *
 * @author agustin
 */
public class BorderGrid implements Border{

      private Image image = new ImageIcon(getClass().getResource("/Icons/scmfondo.png")).getImage();

      public BorderGrid () {
      }
   
      public Insets getBorderInsets(Component c) {
          return new Insets(0,0,0,0);
      }
   
      public boolean isBorderOpaque() {
          return true;
      }

      public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
          int x0 = x + (width-image.getWidth(null))/2;
          int y0 = y + (height-image.getHeight(null))/2;
          g.drawImage(image, x0, y0, null);
    }

}



La zona horaria es GMT -6. Ahora son las 17:10.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.