2010-07-11 3 views
2

Код:неработающих paintComponent метод

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). Есть что-то, что мне не хватает?

ответ

4

Ваш метод 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); 
} 
+0

Спасибо за исправление и объяснения. – MoonStruckHorrors

Смежные вопросы