Java-Gaming.org Java4K winners: [ by our judges | by the community ]         
Featured games (67)
games approved by the League of Dukes
Games in Showcase (∞)
games submitted by our members



News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  Print  
  A simple basic question: calling a method return...  (Read 404 times)
0 Members and 1 Guest are viewing this topic.
Offline gerard_pp

JGO n00b
*

Posts: 31
Medals: 1



« on: 2012-01-30 20: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

Full Member
**

Posts: 234
Medals: 6



« Reply #1 on: 2012-01-30 20: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

JGO n00b
*

Posts: 31
Medals: 1



« Reply #2 on: 2012-01-30 21: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! Go get 'em!
Online ra4king

JGO Kernel
*****

Posts: 3141
Medals: 195


I'm the King!


« Reply #3 on: 2012-01-30 22: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

Full Member
**

Posts: 145
Medals: 5



« Reply #4 on: 2012-01-30 22: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

JGO n00b
*

Posts: 31
Medals: 1



« Reply #5 on: 2012-01-31 05:52:45 »

Thank you all guys. Now it's working.

Warning: Plz, excuse my bad english...
Pages: [1]
  Print  
 
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.136 seconds with 20 queries.