Неработающий метод paintComponent - PullRequest
2 голосов
/ 11 июля 2010

Код:

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

public class firstGUI extends JPanel {

    public static void main(String[] args) {
        JFrame frame =  new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(500,500);
        frame.setVisible(true);
    }

    public void paintComponent(Graphics g) {
        Image image = new ImageIcon("dist.jpg").getImage();
        g.drawImage(image,0,0, this);
    }
}

Компилируется отлично, но когда я его запускаю, он просто показывает форму.Нет изображения (или любой другой операции в paintComponent).Я что-то упускаю?

1 Ответ

4 голосов
/ 11 июля 2010

Ваш paintComponent метод является методом экземпляра вашего firstGUI класса (a JPanel). Проблема в том, что вы не создаете экземпляр firstGUI и не добавляете его в кадр.

Следующий метод замены main создает экземпляр firstGUI и добавляет его к contentPane кадра:

public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(500, 500);
    frame.getContentPane().add(new firstGUI());
    frame.setVisible(true);
}
...