Problem z obrazkiem

0

Witam, dopiero zaczynam moja przygode zjawą. Problem może i banalny, ale mimo wszystko nie chce mi działać. W ksiażce mam skrypt jak wrzucic na panel obrazek, ale za nic nie chce mi działać ! Na kompie mam JAVE 1.3.0, oto kod:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class witaj {

    
    public static void main(String[] args){
    Ramka ramka = new Ramka();
    ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    ramka.show();
    }
    
}    
    
class Ramka extends JFrame {
    
    public Ramka(){
    setTitle("Witaj Maras");
    setSize(300, 300);
    setResizable(false);
    setLocation(100,100);
    
    Panel panel = new Panel();
    Container pow = getContentPane();
    pow.add(panel);
    }
        
}

class Panel extends JPanel {

    public void paintComponent(Graphics g){
        super.paintComponent(g);
        String name = "obraz.jpg";
        Image obraz = Toolkit.getDefaultToolkit().getImage(name);
        g.drawImage(obraz, 0, 0, 100, 100, null);
        drawString("Maras", 20, 20);
    }
}

Program sie normalnie kompiluje, ale obrazek nie chce sie pokazać. Czy może mi ktoś wytłumaczyć gdzie popełniam błąd ?

Pozdrawiam

0

przede wszystkim zrob update Javy do min 1.5 (najlepiej 1.6) i zobacz wtedy
a do obrazka uzyj ImageIO
pozdrawiam

0

W metodzie paintComponent(Graphics g) zamień linię

g.drawImage(obraz, 0, 0, 100, 100, null);

nag.drawImage(obraz, 0, 0, 100, 100, this);

 - zamień <b>null</b> na <b>this</b>


PS. Zanim coś zmienisz w kodzie uruchom program i zminimalizuj go na pasek, a potem przywróć go z paska - obrazek powinien już być narysowany  :-) 

PS.2 Czy linia 
```cpp
drawString("Maras", 20, 20);

nie powinna być g.drawString("Maras", 20, 20);

0

Już sobie poradziłem. nie wiadomo czemu nie widział obrazka. Dopiero jak podałem pełna scieżkę dostepu załapał :)

Pozdrawiam

0

sprobuj tak:

ImageIcon imageIkon1;
Image obrazek1;
imageIkon1=new ImageIcon("plansza.jpg");
obrazek1=imageTemp1.getImage();
g.drawImage(plansza,0,0,this.getWidth(),this.getHeight(),this);
//gdzie this to klasa dziedzicząca po JPanel, w ktorej sie to wszystko dzieje...

no i jakis repaint() no nie, pzdr...

1 użytkowników online, w tym zalogowanych: 0, gości: 1