Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Java draw problem

Dobrý den,
Mám tento kod a nevím proč mi blbne vykreslování obrázku.
Jednou se mi to zobrazilo jak jsem chtěl ale nefungovalo mi ovládání šipkami (před vložením obrázku bylo vše ok i po zakomentování...)

Tak nevím Kouknul jsem na nějaké tutorialy a řešení ale tohle by mělo fungovat bez problémů tak nevím čím to může být.
Budu moc vděčný když mi někdo poradí, předem děkuji.

package orja.arena;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.*;

public class ORJAArena extends JPanel implements ActionListener{

    Player p;
    
    Image i;
    
    public ORJAArena()
    {
        p = new Player();        
        
        ImageIcon obr = new ImageIcon("D:/Project/Untitled.png");
        i = obr.getImage();
        
        setFocusable(true);
        addKeyListener(new pohyb());
        Timer time = new Timer(5, this);
        time.start();
        
    }
    
    public void paint(Graphics g) {
        
    super.paint(g);
      
    Graphics2D g2D = (Graphics2D) g;
    
    // <editor-fold defaultstate="collapsed" desc="Vykreslení města.">
    g2D.setColor(Color.RED);
    
    g2D.drawImage(i, 50, 50, null);
    g2D.fillRect(p.x, p.y, 20, 20);
    
    // </editor-fold>
    
  }

    @Override
    public void actionPerformed(ActionEvent e) {
        repaint();
        p.move();
        checkCollision();
    }

    public void checkCollision()
    {
       
    }
    
    private class pohyb extends KeyAdapter
    {
        
        public void keyPressed(KeyEvent e)
        {
            p.keyPressed(e);
        }

        public void keyReleased(KeyEvent e)
        {
            p.keyReleased(e);
        }
    }
    
}
Předmět Autor Datum
Můžeš sem hodit celý ten projekt? Podle toho, co jsi sem dal nejsem schopen poradit...
MaSo 09.11.2011 07:38
MaSo
Pokud ti jde jenom o vykreslení obrázku do JPanel, tak nejjednodušeji asi takto: import java.awt.Gr…
MaSo 09.11.2011 07:53
MaSo
Už jsem to vyřešil měl jsem problém v třídě s vytvářením okna kde jsem prvně nastavil okno atd.. a p… poslední
Atomix617 10.11.2011 20:26
Atomix617

Pokud ti jde jenom o vykreslení obrázku do JPanel, tak nejjednodušeji asi takto:

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class ImagePanel extends JPanel {

	private BufferedImage image;

	public ImagePanel() {
		try {
			image = ImageIO.read(new File("c:/apple.jpg"));
		} catch (IOException ex) {
			// handle exception...
		}
	}
	
	public BufferedImage getImage() {
		return image;
	}

	@Override
	public void paintComponent(Graphics g) {
		g.drawImage(image, 0, 0, null); 
	}
	
	public static void main(String[] args) {
		final JFrame f = new JFrame();
		ImagePanel image = new ImagePanel();
		f.getContentPane().add(image);
		f.pack();
		f.setSize(351,400);
		
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				f.setVisible(true);				
			}
		});
	}
}

Už jsem to vyřešil měl jsem problém v třídě s vytvářením okna kde jsem prvně nastavil okno atd.. a pak až jsem přidal 'jf.add(new ORJAArena());' tímto tam vznikal problém stačilo to dát jen na začátek. Tímto se chci omluvit že jsem sem dal špatný kod a chci poděkovat za pěkný ukázkový kod :) pomůže mi to se zdokonalit a zlepšit kod.

Děkuji moc.

Zpět do poradny Odpovědět na původní otázku Nahoru