[Java]Carregando e mostrando imagens com java.awt Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[Java]Carregando e mostrando imagens com java.awt

Ir para baixo

[Java]Carregando e mostrando imagens com java.awt Empty [Java]Carregando e mostrando imagens com java.awt

Mensagem por CDZ Sáb Nov 03, 2018 1:59 pm

Tipo: Tutorial
Nível: Intermediário.
Linguagem: java.
Contato e mais informações: https://lucasindiesh1p.wordpress.com
Mais tutorais sobre: https://lucasindiesh1p.wordpress.com/2018/11/03/carregando-e-mostrando-imagens-com-java-awt/

Passo 0: Antes de tudo, saiba que no java, em relação a posição das imagens, elas são definidas por coordenadas nas telas X,Y, por padrão esse X,Y começa sempre no canto-esquero do topo da tela, assim se você adicionar +1 na coordenada x ela irá para direita e +1 na y ela ira para baixo.
Veja essa imagem que o site da oracle disponibilizou:
[Java]Carregando e mostrando imagens com java.awt 2D-11
Passo1): Primeiro configure a sua classe para aonde você irá desenhar:
Código:
Applet ou Frame ou JApplet ou JFrame
?
obs: no caso de Applet você terá colocar dentro do método paint o setSize, exemplo: 
Código:
this.setSize(640,480)
, pois sem isso, o applet fica com suas dimensões padrão que são pequenas e você não vai ver sua imagem.
Passo2) Carregar os dados da imagem
Passo3) Desenhar a imagem no programa.
Primeiramente importaremos as seguintes classes padrões do java:
Código:
import java.awt.Graphics2D;

OU
Código:
import java.awt.Graphics; 
(você escolhe entre o graphics e o graphics2d, o graphics2d é como se fosse o graphics so que com alguns recursos extras)
Nesse guia estamos usando o Graphics2D, mas no caso de optar por usar apenas o graphics

  •  que mudará é apenas a implementação (mais abaixo) do paint(), assim:


REMOVA esta linha:
Código:
 Graphics2D g2 = (Graphics2D)g; 

e
ALTERE
esta linha:
Código:
g2.drawImage(imagemexemplo, 25, 50, 25, 25, this);

para
Código:
g.drawImage(imagemexemplo, 25, 50, 25, 25, this);
Por que? Pois o Graphics2D é apenas uma extensão do graphics, e o método darwImage() que usamos aqui é do Graphics que o Graphics2D está herdando na hierarquia das classes.
também importaremos (para ambos os casos graphics ou graphics2D) os seguintes:
Código:
junto com mport.java.awt.Image;
import java.awt.Toolkit;
import java.net.URL;
,
Agora, ja dentro da sua classe, vamos as variáveis e aos métodos:
Vamos criar uma variável para a imagem, um objeto da imagem.
Exemplo:
Código:
private Image imagemexemplo = null;
 //estamos iniciando ela sem valor algum inicialmente.
Para podermos CARREGAR/ABRIR o arquivo da imagem vamos criar um get para instruir o programa de qual é o caminho da imagem:
Código:
public Image getImage(String path)
{
Image tempImage = null;
try{//"tentar" colocamos isso para prevenir, caso a imagem não exista.
//o "Trabalhandoimagens" é o nome dessa classe que estamos, você vai colocar o nome da sau classe
URL imagemURL = Trabalhandoimagens.class.getResource(path);
tempImage = Toolkit.getDefaultToolkit().getImage(imagemURL);
}
catch (Exception e){
System.out.println("Ocorreu um erro - " + e.getMessage());
}
return tempImage;
}
Com o java awt, usamos o Graphics ou o Graphics2D dele para trabalhar com imagens.
Com Graphics2D:
Criamos um método chaado paint que vai receber o gráfico do programa como parâmetro, para desenhar nele.
Assim:
Código:
public void paint(Graphics g){
Graphics2D g2 = (Graphics2D)g; //assim estaremos utilizando o Graphics2D e não o graphics.
}

Agora vamos fazer o método paint saber qual imagem ele vai desenhar:
Código:
public void paint(Graphics g){
if(imagemexemplo == null)
imagemexemplo = getImage("heheimagem.png");
Graphics2D g2 = (Graphics2D)g;
}

Agora vamos desenhar a imagem
Utilizamos o método drawImage dele. Existem vários métodos chamados drawImage com o graphics2d mas cada um tem diferentes configurações de parâmetros, use a que mais atender ao que você quer:
Código:
public void paint(Graphics g){
if(imagemexemplo == null)
imagemexemplo = getImage("heheimagem.png");
Graphics2D g2 = (Graphics2D)g;
g2.drawImage(imagemexemplo, 25, 50, 25, 25, this);
//colocamos esse "this" por causa do ImageObserver.
//Exemplo: se esta classe for Applet, esta informando justamente isto ao ser desenhado.
}
Código:

} //fim da classe que você criou
fim.
Referências:
https://docs.oracle.com/javase/tutorial/2d/overview/coordinate.html
https://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html
https://docs.oracle.com/javase/7/docs/api/java/awt/Toolkit.html
https://stackoverflow.com/questions/19212990/what-is-an-imageobserver
https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#getResource-java.lang.String-
https://docs.oracle.com/javase/8/docs/api/java/applet/Applet.html
http://www.guj.com.br/t/o-que-e-deprecated/120578
CDZ
CDZ
Novato
Novato

Mensagens : 22
Créditos : 0

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos