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:
Passo1): Primeiro configure a sua classe para aonde você irá desenhar:
obs: no caso de Applet você terá colocar dentro do método paint o setSize, exemplo:
Passo2) Carregar os dados da imagem
Passo3) Desenhar a imagem no programa.
Primeiramente importaremos as seguintes classes padrões do java:
OU
Nesse guia estamos usando o Graphics2D, mas no caso de optar por usar apenas o graphics
REMOVA esta linha:
e
ALTERE
esta linha:
para
também importaremos (para ambos os casos graphics ou graphics2D) os seguintes:
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:
Para podermos CARREGAR/ABRIR o arquivo da imagem vamos criar um get para instruir o programa de qual é o caminho da imagem:
Com Graphics2D:
Criamos um método chaado paint que vai receber o gráfico do programa como parâmetro, para desenhar nele.
Assim:
Agora vamos fazer o método paint saber qual imagem ele vai desenhar:
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:
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
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:
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)
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;
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);
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;
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 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
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