Avatar billede unisdustudent Nybegynder
10. januar 2007 - 16:32 Der er 1 løsning

Problem med opdatering af billede i world of zuul

Jeg har et problem med billede skift i spillet world of zuul.

Jeg har indsat følgende kode svarende til et billedeskift i GameGUI:

public void showImage(String imageName)
    {
        URL imageURL = this.getClass().getClassLoader().getResource(imageName);
        if(imageURL == null)
            System.out.println("image not found");
        else {
            ImageIcon icon = new ImageIcon(imageURL);
            image.setIcon(icon);

        }
    }



i Room classen har jeg følgende, som jeg vil mene skal være for at kunne skifte billede, når man går ind i et andet rum.
 

private String imageName;



public Room(String description, String image)
    {
        this.description = description;
        imageName = image;
    }



public String getImageName()
    {
        return imageName;
    }


og i Game classen ahr jeg følgende kode der tager hensyn til hvilken retning man vælger at gå:

private void goRoom(Command command)
    {
        if(!command.hasSecondWord()) {
            // if there is no second word, we don't know where to go...
            System.out.println("Go where?");
            return;
        }

        String direction = command.getSecondWord();

        // Try to leave current room.
        Room nextRoom = null;
        if(direction.equals("north")) {
             
            nextRoom = currentRoom.northExit;
               
        }
        if(direction.equals("east")) {
               
            nextRoom = currentRoom.eastExit;

        }
        if(direction.equals("south")) {
               
            nextRoom = currentRoom.southExit;
             

        }
        if(direction.equals("west")) {
               
            nextRoom = currentRoom.westExit;
 
        }

        if (nextRoom == null) {
            System.out.println("There is no door!");
        }
        else {
            currentRoom = nextRoom;
        System.out.println(currentRoom.getLongDescription());
        gui.showImage(currentRoom.getImageName());
       
           

           
       
    }
}


------ Noget kode er udeladt..



Jeg har følgende problem. Jeg kan som sagt ikke få opdateret bilelderne når jeg går ind i et andet rum.

Hvis jeg kommatere følgende sætning viser den ingen fejl:

gui.showImage(currentRoom.getImageName());

, men hvis denne ikke er kommenteret, og egenlig burde vise et nyt billede for det rum det svarer til får jeg følgende fejl i terminal vinduet..


Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Game.goRoom(Game.java:121)
    at Game.play(Game.java:86)
    at GameGUI.actionPerformed(GameGUI.java:182)
    at javax.swing.JTextField.fireActionPerformed(JTextField.java:487)
    at javax.swing.JTextField.postActionEvent(JTextField.java:668)
    at javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:783)
    at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1571)
    at javax.swing.JComponent.processKeyBinding(JComponent.java:2763)
    at javax.swing.JComponent.processKeyBindings(JComponent.java:2798)
    at javax.swing.JComponent.processKeyEvent(JComponent.java:2726)
    at java.awt.Component.processEvent(Component.java:5265)
    at java.awt.Container.processEvent(Container.java:1966)
    at java.awt.Component.dispatchEventImpl(Component.java:3955)
    at java.awt.Container.dispatchEventImpl(Container.java:2024)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1810)
    at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:672)
    at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:920)
    at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:798)
    at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:636)
    at java.awt.Component.dispatchEventImpl(Component.java:3841)
    at java.awt.Container.dispatchEventImpl(Container.java:2024)
    at java.awt.Window.dispatchEventImpl(Window.java:1774)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Avatar billede unisdustudent Nybegynder
12. januar 2007 - 21:23 #1
1
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester