Pessoal, não estou conseguindo entender bem a logica para carregar imagens num JFrame. Seria para um jogo, não sei qual o melhor método, pra isso.
Segue abaixo o código-fonte.
Obrigado gente. Já resolvi o problema. É que quando procuro esses materiais na internet eu acho um monte de implementações diferentes, acaba que confunde. Consertei o codigo agora. Não sei o sentido de criar um JLabel pra essa situação.
O problema agora é diferente.
Eu acho que o código roda direitinho, mas nao estou conseguindo centralizar o sprite dentro do JFrame. Aparece so uma janela em branco. Como contornar isso? Abaixo o codigo:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package jogo;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
/**
*
* @author USER
*/
public class Pong extends JFrame{
BufferedImage imagem;
public Pong(){
//criando janela
super("Pong");
//tamanho da janela
setSize(300,300);
//localizacao
setLocationRelativeTo(null);
//operacao ao fechar janela
setDefaultCloseOperation(EXIT_ON_CLOSE);
//carregando imagem
File arquivo = new File("imagem.png");
//carregando imagem no buffer
try {
imagem = ImageIO.read(arquivo);
} catch (IOException ex) {
System.out.println("Erro ao carregar imagem");
}
}
//classe de desenho
public void desenho(Graphics g){
//objeto graphics
g.drawImage(imagem,0,0,0,0,this);
}
public static void main(String[] args) {
Pong janela = new Pong();
janela.setVisible(true);
}
}
Volto a ressaltar: Leia os tutoriais do ponto v. Eles explicam certinho como trabalhar com Graphics, imagem, como fazer a animação do game e usar escrita direta. Assim vc terá um jogo fluído e funcional em pouco tempo.
Já conferi por esses sites ja, ja dei uma lida neles.
Mesmo assim não consegui corrigir o problema. Alguma outra boa alma pode me ajudar?
Uma atualização do codigo:
[code]public class Pong extends JFrame{
BufferedImage imagem;
public Pong(){
//criando janela
super("Pong");
//tamanho da janela
setSize(300,300);
//localizacao
setLocationRelativeTo(null);
//operacao ao fechar janela
setDefaultCloseOperation(EXIT_ON_CLOSE);
//carregando imagem
File arquivo = new File("C:\\Documents and Settings\\USER\\Meus documentos\\NetBeansProjects\\Jogo\\src\\jogo\\imagem.PNG");
try {
//carregando imagem no buffer
imagem = ImageIO.read(arquivo);
} catch (IOException ex) {
Logger.getLogger(Pong.class.getName()).log(Level.SEVERE, null, ex);
}
}
//classe de desenho
public void desenho(Graphics g){
Graphics2D g2 = (Graphics2D)g.create();
g2.drawImage(imagem, 100, 100,null);
}
public static void main(String[] args) {
Pong janela = new Pong();
janela.setVisible(true);