Code: Select all
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class FrontEnd extends JFrame {
public FrontEnd() {
Image miniIcon = new ImageIcon("icon.gif").getImage();
this.setIconImage(miniIcon);
MainScreen mainScr = new MainScreen();
add(mainScr);
mainScr.repaint();
}
public static void main(String args[]) {
FrontEnd window = new FrontEnd();
window.setTitle("Blah");
window.setSize(400, 400);
window.setLocationRelativeTo(null);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setVisible(true);
}
}
//#####################################################################################################
class MainScreen extends JPanel {
public MainScreen() {
JPanel p = new JPanel(new GridLayout(1, 1, 0, 0));
System.out.println("Container panel created");
Image image = new ImageIcon("icon.gif").getImage();
ImageViewer viewPanel = new ImageViewer(image);
add(viewPanel);
viewPanel.repaint();
}
protected void paintComponent(Graphics g) {
ImageViewer.repaint();
System.out.println("The main screen is redrawn");
}
}
//#####################################################################################################
class ImageViewer extends JPanel {
private java.awt.Image image;
public ImageViewer(Image image) {
this.image = image;
System.out.println("ImageViewer constructor called");
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, this);
System.out.println("ImageViewer paintComponent called");
}
}