Frage

import java.awt.*;
import javax.swing.*;

public class Main
{
    JFrame jf;
    Main()
    {
        jf=new JFrame();
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.add(new MyCanvas());
        jf.pack();
        jf.setVisible(true);
    }
    public static void main(String[] args)
    {
        SwingUtilities.invokeLater(new Runnable()
        {

            @Override
            public void run()
            {
                new Main();
            }
        });
    }
}
class MyCanvas extends JComponent
{
    Image img;
    MyCanvas()
    {
        setPreferredSize(new Dimension(200,200));
        img=Toolkit.getDefaultToolkit().createImage("1.jpg");
    }
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        g.drawImage(img,0,0,null);
    }
}

Ich hätte gerne eine eigene Leinwand paintComponent Methode, aber manchmal sehe ich ein leeres Fenster ohne Bild.Und ich muss die Fenstergröße ändern, um dieses Bild sichtbar zu machen.Was ist das Problem?Warum zeichnet drawImage manchmal nicht?

War es hilfreich?

Lösung

Ändern

g.drawImage(img,0,0,null);

Zu

g.drawImage(img,0,0,this);

und schon kann es losgehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top