// Mr Greenstein // March 17, 2014 // ShowImage.java // This program shows: // // 1. Using a null layout // 2. loading an image from a file and displays it to the screen. // 3. implementing a JLabel component import java.awt.*; // for classes Image, Graphics, Color import java.awt.event.*; // for classes KeyListener, MouseListener import javax.swing.*; // for class JFrame //////////////////////////////////////////////////////// // 2. Add imports for classes File, IOExcaption, ImageIO // public class ShowImage { private JFrame frame; private DrawingArea canvas; // JPanel to draw images //////////////////////////////////////////////////////// // 2. Declare image object //////////////////////////////////////////////////////// // 3. Declare JLabel object private int xpos, ypos; private boolean keyClear; private int sizeX = 217, sizeY = 301; // Calvin //////////////////////////////////////////////////////// // 2. Provide Filename public ShowImage ( ) { xpos = ypos = 220; // center the picture in the frame keyClear = true; } public static void main (String[] args) { ShowImage si = new ShowImage(); si.Run(); } public void Run( ) { // Create the JFrame frame = new JFrame("ShowImage"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //////////////////////////////////////////////////////// // 1. Set the JFrame to a null layout //////////////////////////////////////////////////////// // 3. Initialize JLabel and add to frame // Create the JPanel canvas canvas = new DrawingArea ( ); canvas.setBackground( Color.gray ); // Get the Image from a file GetMyImage(); frame.getContentPane().add( canvas ); frame.addKeyListener(canvas); //////////////////////////////////////////////////////// // 1. Set the location and size of the canvas //////////////////////////////////////////////////////// // 3. Set the location and size of the label frame.setBackground(Color.gray); frame.setSize(800, 800); frame.setLocation(300, 0); frame.setResizable(false); frame.setVisible(true); } public void GetMyImage() { /////////////////////////////////////////////////// // 2. Create a try-catch block for loading the image } // canvas class DrawingArea extends JPanel implements MouseListener, KeyListener { public DrawingArea ( ) { addMouseListener (this); addKeyListener (this); } public void paintComponent ( Graphics g ) { if (keyClear) super.paintComponent ( g ); // blank the canvas /////////////////////////////////////////////////////////// // 2. Draw the image that was loaded keyClear = false; } // Mouse methods public void mousePressed ( MouseEvent e ) { xpos = e.getX ( ) - 135; ypos = e.getY ( ) - 90; repaint ( ); } public void mouseClicked ( MouseEvent e ) {} public void mouseReleased ( MouseEvent e ) {} public void mouseEntered ( MouseEvent e ) {} public void mouseExited ( MouseEvent e ) {} // Key methods public void keyPressed (KeyEvent e) { int code = e.getKeyCode(); // pressing space or shift will clear the screen if (code == 32 || code == 16) { keyClear = true; repaint(); } } public void keyTyped (KeyEvent e) {} public void keyReleased (KeyEvent e) {} } }