Fontsheets - why do I get this error?

I tried to make a void that prints text… but with my own font-sheet.

This is what I have (giving an error):
Board class:



package javadaemon.com.GraphicsProject;

import java.awt.Canvas;
import java.awt.Graphics;

/**
 *
 * @author mads
 */
public class Board extends Canvas {

    public Board(int x, int y) {
        this.setSize(x, y);
    }

    @Override
    public void paint(Graphics g) {
        //g.drawRect(10, 20, 40, 40);
        this.drawString("Hello", g, 40, 40);

    }
    
    String[] chars = {
                      "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
                      ".,!?:;\"'+-=/\\< "
    };

    public void drawString(String string, Graphics g, int x, int y) {
        string = string.toUpperCase();
        for (int i=0; i<string.length(); i++) {
            char ch = string.charAt(i);
            for (int ys=0; ys<chars.length; ys++) {
                int xs = chars[ys].indexOf(ch);
                if (xs>=0) {
                    g.drawImage(Art.guys[xs][ys+9], x+i*6, y, null);
                }
            }
        }
    }
}

Art class:


package javadaemon.com.GraphicsProject;

import java.awt.*;
import java.awt.image.BufferedImage;

import javax.imageio.ImageIO;

public class Art {
    public static BufferedImage[][] guys = split(load("/guys.png"), 6, 6);

    public static BufferedImage load(String name) {
        try {
            BufferedImage org = ImageIO.read(Art.class.getResource(name));
            BufferedImage res = new BufferedImage(org.getWidth(), org.getHeight(), BufferedImage.TYPE_INT_ARGB);
            Graphics g = res.getGraphics();
            g.drawImage(org, 0, 0, null, null);
            g.dispose();
            return res;
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    private static BufferedImage[][] split(BufferedImage src, int xs, int ys) {
        int xSlices = src.getWidth() / xs;
        int ySlices = src.getHeight() / ys;
        BufferedImage[][] res = new BufferedImage[xSlices][ySlices];
        for (int x = 0; x < xSlices; x++) {
            for (int y = 0; y < ySlices; y++) {
                res[x][y] = new BufferedImage(xs, ys, BufferedImage.TYPE_INT_ARGB);
                Graphics g = res[x][y].getGraphics();
                g.drawImage(src, -x * xs, -y * ys, null);
                g.dispose();
            }
        }
        return res;
    }
}

GraphicsProject class:



package javadaemon.com.GraphicsProject;

import javax.swing.JFrame;

/**
 *
 * @author mads
 */
public class GraphicsProject {

    public GraphicsProject() {
        JFrame frame = new JFrame("Frame");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Board board = new Board(400, 200);
        frame.add(board);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String args[]) {
        new GraphicsProject();
    }

}

Most of the code is from Metagun by Markus Persson. I used that just to get it working… turns out it wouldn’t.

Help please?

EDIT:

This is the error i get:



run:
03-09-2010 22:10:25 com.sun.corba.se.impl.ior.IORImpl getProfile
WARNING: "IOP00511201: (INV_OBJREF) IOR must have at least one IIOP profile"
org.omg.CORBA.INV_OBJREF:   vmcid: SUN  minor code: 1201  completed: No
        at com.sun.corba.se.impl.logging.IORSystemException.iorMustHaveIiopProfile(IORSystemException.java:473)
        at com.sun.corba.se.impl.logging.IORSystemException.iorMustHaveIiopProfile(IORSystemException.java:495)
        at com.sun.corba.se.impl.ior.IORImpl.getProfile(IORImpl.java:334)
        at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_Object(CDRInputStream_1_0.java:787)
        at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_Object(CDRInputStream_1_0.java:761)
        at com.sun.corba.se.impl.encoding.CDRInputStream.read_Object(CDRInputStream.java:231)
        at com.sun.corba.se.impl.resolver.INSURLOperationImpl.getIORFromString(INSURLOperationImpl.java:120)
        at com.sun.corba.se.impl.resolver.INSURLOperationImpl.operate(INSURLOperationImpl.java:130)
        at com.sun.corba.se.impl.orb.ORBImpl.string_to_object(ORBImpl.java:836)
        at org.GNOME.Accessibility.AccessUtil.getRegistryObject(AccessUtil.java:143)
        at org.GNOME.Accessibility.JavaBridge.registerApplication(JavaBridge.java:1147)
        at org.GNOME.Accessibility.JavaBridge.<init>(JavaBridge.java:398)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
        at java.lang.Class.newInstance0(Class.java:372)
        at java.lang.Class.newInstance(Class.java:325)
        at java.awt.Toolkit.loadAssistiveTechnologies(Toolkit.java:786)
        at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:875)
        at java.awt.Window.getToolkit(Window.java:1170)
        at java.awt.Window.init(Window.java:400)
        at java.awt.Window.<init>(Window.java:438)
        at java.awt.Frame.<init>(Frame.java:419)
        at javax.swing.JFrame.<init>(JFrame.java:218)
        at javadaemon.com.GraphicsProject.GraphicsProject.<init>(GraphicsProject.java:12)
        at javadaemon.com.GraphicsProject.GraphicsProject.main(GraphicsProject.java:22)
Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError
        at javadaemon.com.GraphicsProject.Board.drawString(Board.java:35)
        at javadaemon.com.GraphicsProject.Board.paint(Board.java:19)
        at sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
        at sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:73)
        at sun.awt.RepaintArea.paint(RepaintArea.java:240)
        at sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:709)
        at java.awt.Component.dispatchEventImpl(Component.java:4545)
        at java.awt.Component.dispatchEvent(Component.java:4295)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:604)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: input == null!
        at javadaemon.com.GraphicsProject.Art.load(Art.java:20)
        at javadaemon.com.GraphicsProject.Art.<clinit>(Art.java:9)
        ... 15 more
Caused by: java.lang.IllegalArgumentException: input == null!
        at javax.imageio.ImageIO.read(ImageIO.java:1378)
        at javadaemon.com.GraphicsProject.Art.load(Art.java:13)
        ... 16 more
BUILD SUCCESSFUL (total time: 3 minutes 10 seconds)

EDIT TWO:
I have the guys image in a folder called res. It is together with the src folder.

It looks like it can’t find the image try removing the leading / from the path.

Thanks for the reply.
Removing that does not change much - I still get this error:


Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError
        at javadaemon.com.GraphicsProject.Board.drawString(Board.java:35)
        at javadaemon.com.GraphicsProject.Board.paint(Board.java:19)
        at sun.awt.RepaintArea.paintComponent(RepaintArea.java:248)
        at sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:56)
        at sun.awt.RepaintArea.paint(RepaintArea.java:224)
        at sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:695)
        at java.awt.Component.dispatchEventImpl(Component.java:4706)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: input == null!
        at javadaemon.com.GraphicsProject.Art.load(Art.java:20)
        at javadaemon.com.GraphicsProject.Art.<clinit>(Art.java:9)
        ... 15 more
Caused by: java.lang.IllegalArgumentException: input == null!
        at javax.imageio.ImageIO.read(ImageIO.java:1362)
        at javadaemon.com.GraphicsProject.Art.load(Art.java:13)
        ... 16 more

It still looks like the image isn’t loading. Try making a simple program that does nothing but load an image, once you get it to work move what you learned over to fixing this problem.
Learning to read your stack trace will be a valuable skill so I would recommend looking into that some too.