1 урок

Способы создания графической формы
1 способ (Картинку нужно сказать в папку с ресурсами. Только он почему-то не выводит картинку. Пустой экран. Исправьте это)

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;


public class Testform {

    
    public static void main(String[] args) {
   
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800,600);
frame.setResizable(false);
frame.setVisible(true);   
JLabel lbl = new JLabel("");  
lbl.setBounds(0,0,frame.getWidth(),frame.getHeight());
lbl.setIcon(new ImageIcon(frame.getClass().getResource("/pic/winter.jpg")));
frame.add(lbl);
   
}}


2 способ (Более правильный. Кстати, сообщите почему он более правильный?)

import java.awt.Graphics;

import javax.swing.JFrame;
import java.io.IOException;
import javax.imageio.ImageIO;
import java.awt.*;
import java.util.logging.Level;
import java.util.logging.Logger;



public class Testform extends JFrame {

Testform()
{
super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
super.setSize(800,600);
super.setResizable(false);
super.setVisible(true);   
}
  
@Override
public void paint(Graphics g) {
        super.paint(g);
 Image img;
  
    try {
        img = ImageIO.read(getClass().getResourceAsStream("/pic/winter.jpg"));
          g.drawImage(img, 0, 0, null);
    } catch (IOException ex) {
        Logger.getLogger(Testform.class.getName()).log(Level.SEVERE, null, ex);
    }
       
  
        
}
    
    public static void main(String[] args) {

       Testform form=new Testform(); 
   
    }
    
}