Java-Gaming.org
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
Featured games (78)
games approved by the League of Dukes
Games in Showcase (416)
games submitted by our members
Games in WIP (306)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  A simple basic question: calling a method return...  (Read 694 times)
0 Members and 1 Guest are viewing this topic.
Offline gerard_pp

Junior Member


Medals: 1



« Posted 2012-01-31 02:13:26 »

Hello

First of all, please excuse my english. I`ll do my best to explain myself.

I have readed some java books, but i still don´t have the practical experience to deal with the developing of serius java applications. My goal is to program java games, and that´s why im here asking my fist nooby question:

I wanna register on a "drawString" line, whenever the player hits any key on the keyboard. i was guessing to put it inside my paint method, but it keeps giving me an error.

Here is the code. Can someone help me:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
import java.applet.*;
import java.awt.*;

public class Prueba extends Applet implements Runnable{
   Thread t;
   int i;
   
   public void init(){
      t = new Thread(this);
      t.start();
     
      i = 0;
   }
   
   public void run(){
      while(true){
         i++;
         repaint();
         
         try{
            t.sleep(1000/30);
         }catch(Exception ex){
         }  
      }
   }
   public void paint(Graphics g){
      g.drawString("i = "+i, 10, 20);
     
      g.drawString("message", 50, 80);
   }
   public boolean keyDown(Event e, int key)
   {
     String message = "value = " + key;
     return true;
   }
   
}

Warning: Plz, excuse my bad english...
Offline roland
« Reply #1 - Posted 2012-01-31 02:39:18 »

Please output the error you get.

firstly,

1  
String message = "value = " + key;

you don't do anything with this. I think you want to make message a field instead of local variable.
Then you can say:

1  
g.drawString(message, 50, 80);
instead of
1  
g.drawString("message", 50, 80);



You also need your class to implement KeyListener and go
1  
addKeyListener(this);
in the init method
Offline gerard_pp

Junior Member


Medals: 1



« Reply #2 - Posted 2012-01-31 03:23:50 »

Thanks for the response.

For some reason i cannot see the message of the key being pressed. I get this error:

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

Here is my code with modifications:

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  
28  
29  
30  
31  
32  
33  
34  
35  
36  
37  
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class Prueba extends Applet implements Runnable, KeyListener{
   String message;
   Thread t;
   int i;
   
   public void init(){
      addKeyListener(this);
      t = new Thread(this);
      t.start();
     
      i = 0;
   }
   
   public void run(){
      while(true){
         i++;
         repaint();
         
         try{
            t.sleep(1000/30);
         }catch(Exception ex){;}  
      }
   }
   public void paint(Graphics g){
      g.drawString("i = "+i, 10, 20);
      g.drawString(message, 50, 80);
   }
   public void keyPressed(KeyEvent e) {
        message = "KEY PRESSED: " + e;
    }
   public void keyTyped(KeyEvent e) {;}
   public void keyReleased(KeyEvent e) {;}
}

Warning: Plz, excuse my bad english...
Games published by our own members! Check 'em out!
Play the free demo of Revenge of the Titans!
Offline ra4king

JGO Kernel


Medals: 291
Projects: 2


I'm the King!


« Reply #3 - Posted 2012-01-31 04:40:42 »

That's not the entire exception, but it's most likely NullPointerException because the variable "message" is null and you can't draw null strings Wink

Offline gbeebe

Senior Member


Medals: 5
Projects: 1



« Reply #4 - Posted 2012-01-31 04:54:29 »

Change the line that reads:
1  
String message;

to:
1  
String message = "";


also, ra4king beat me to it, because I didn't realize I wasn't logged in, and couldn't remember my password Sad
Offline gerard_pp

Junior Member


Medals: 1



« Reply #5 - Posted 2012-01-31 11:52:45 »

Thank you all guys. Now it's working.

Warning: Plz, excuse my bad english...
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Get high quality music tracks for your game!

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

The invasion has landed! On Mars! And you're there to beat 'em!
Jesse_Attard (11 views)
2013-06-18 22:03:02

HeroesGraveDev (56 views)
2013-06-15 23:35:23

Vermeer (56 views)
2013-06-14 20:08:06

davedes (55 views)
2013-06-14 16:03:55

alaslipknot (50 views)
2013-06-13 07:56:31

Roquen (71 views)
2013-06-12 04:12:32

alaslipknot (56 views)
2013-06-10 19:30:18

HeroesGraveDev (72 views)
2013-06-09 04:36:03

alaslipknot (60 views)
2013-06-09 03:40:19

CodeHead (60 views)
2013-06-09 02:55:41
Smoothing Algorithm Question
by UprightPath
2013-05-28 02:58:26

Smoothing Algorithm Question
by UprightPath
2013-05-28 02:57:33

Complex number cookbook
by Roquen
2013-04-24 12:47:31

2D Dynamic Lighting
by Oskuro
2013-04-17 16:46:12

2D Dynamic Lighting
by Oskuro
2013-04-17 16:45:57

2D Dynamic Lighting
by Oskuro
2013-04-17 16:23:20

Noise (bandpassed white)
by Roquen
2013-04-05 17:36:01

Noise (bandpassed white)
by Roquen
2013-04-03 16:17:38
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!