Imagem no Graphics

2 respostas
somma

Pessoal estou procurando desde ontem algum exemplo de como eu coloco uma imagem de fundo utilizando Graphics??????

Este é o código que eu fiz.... mas não sei quais parametros eu passo para colocar uma imagem ????

[code]
public void paint(Graphics g){
super.paint(g);

// for(int i=0;i<=8;i++){
//g.drawLine(50*i+10,40,50*i+10,440);
//g.drawLine(10,50*i+40,410,50*i+40);
// }

g.drawImage("",0,0,null);

ultimaRainha.paint(g);
}
[code]

Pode me passar tutoriais que tiver é claro!!!!

Obrigado

2 Respostas

ViniGodoy

Vamos começar do começo.

  1. No Swing, Você não deve sobrescrever o método paint, e sim, paintComponent.
  2. Você não deve usar o objeto Graphics diretamente. Deve criar uma cópia dele. Use o método create() do Graphics para isso e no final do método o método dispose() para liberar a cópia;
  3. Para colocar uma imagem de fundo, é necessário carrega-la através do método ImageIO.read().

Sugestão, baixe a classe JImagePanel do link abaixo e veja como está implementada.
http://www.guj.com.br/posts/list/56248.java#295271

Quanto aos tutoriais recomendo os seguintes:
http://java.sun.com/products/jfc/tsc/articles/painting/index.html#swing
http://java.sun.com/j2se/1.5.0/docs/guide/2d/spec/j2d-bookTOC.html
http://fivedots.coe.psu.ac.th/~ad/jg/

H
Apenas acrescentando um exemplo do que o ViniGodoy disse
/**
 * 
 */
package imagem;

import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

/**
 * @author Vitor Hugo
 * 
 */
public class VisualizarImagem {

	private JFrame frame;

	private JLabel marca;

	private Icon iconImagemMarcada;

	public VisualizarImagem() {
		frame = new JFrame();
		iconImagemMarcada = new ImagemMarcada();
		marca = new JLabel(iconImagemMarcada);
	}

	public void montarTela() {
		frame.setSize(800, 600);
		
		frame.add(marca);
		frame.setVisible(true);
	}

	public static void main(String[] args) {
		VisualizarImagem visualizar = new VisualizarImagem();
		visualizar.montarTela();
	}

}

class ImagemMarcada implements Icon {

	private int width = 15;

	private int height = 15;
	
	private ImageIcon icone = new ImageIcon("C:\Documents and Settings\ssilva\Desktop\foto.jpg");
	

	public void paintIcon(Component c, Graphics g, int x, int y) {
		Graphics2D g2d = (Graphics2D) g.create();
		
		g2d.drawImage(icone.getImage(), 380, 270 ,null);
		
		g2d.setColor(Color.WHITE);
		g2d.fillRect(x + 1, y + 1, width - 2, height - 2);

		g2d.setColor(Color.BLACK);
		g2d.drawRect(x + 1, y + 1, width - 2, height - 2);

		g2d.setColor(Color.RED);

		g2d.drawLine(x + 10, y + 10, x + width - 10, y + height - 10);
		g2d.drawLine(x + 10, y + height - 10, x + width - 10, y + 10);

		g2d.dispose();
	}

	public int getIconHeight() {
		return height;
	}

	public int getIconWidth() {
		return width;
	}

}

Eu utilizei o seguinte site pra fazer esse exemplo :

[url]http://java.sun.com/javase/6/docs/api/[/url]
[url]http://java.sun.com/docs/books/tutorial/uiswing/components/icon.html[/url]

Criado 4 de outubro de 2007
Ultima resposta 4 de out. de 2007
Respostas 2
Participantes 3