Curso

quero me aperfeiçoar em interfaces em java alguém conhece algum curso especifico para isso ou q abranja mais esse foco?

Interfaces gráficas ou Interface como contrato na implementação de um código?

do tipo janelas, de software, to com dificuldade ate para inserir imagem simples como nesse código os cursos q fiz não so ensinam formulas no para ser executados no console…
nem imagem to conseguindo implementar na janela.

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;

import javax.swing.JFrame;

public class Main extends Canvas {

	public int wX = 500;
	public int hY = 300;
	public JFrame frame;
	public BufferedImage image;

	public Main() {
		frame = new JFrame();
		frame.setSize(wX, hY);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLocationRelativeTo(null);
		frame.setVisible(true);

		render();
	}

	public void render() {

		BufferStrategy bs = this.getBufferStrategy();
		if (bs == null) {
			this.createBufferStrategy(3);
		}

		image = new BufferedImage(wX, hY, BufferedImage.TYPE_INT_RGB);
		Graphics g = image.getGraphics();
		g.setColor(new Color(1, 50, 4));
		g.fillRect(0, 0, wX, hY);
		g.dispose();
		g = bs.getDrawGraphics();
		g.drawImage(image, 0, 0, wX, hY, null);
		g.setFont(new Font("ok", Font.BOLD, 20));
		bs.show();

	}

	public static void main(String[] args) {

		new Main();

	}

}