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 (406)
games submitted by our members
Games in WIP (293)
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  
  Canvas isn't visible  (Read 236 times)
0 Members and 1 Guest are viewing this topic.
Offline SHC

Senior Member


Medals: 8



« Posted 2013-01-25 08:01:59 »

To make the single codebase work as both applet and application, I extend my game from the applet class and add a canvas to it. Here's my game structure.

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  
public class MyGame extends JApplet implements Updateable, Runnable {

    private Canvas canvas = null;
    public static BufferStrategy buffer = null;

    // Start the game
   public final void start(){
        canvas = new Canvas();
        add(canvas);
        canvas.setIgnoreRepaint(true);
        canvas.requestFocus();
        canvas.createBufferStrategy(2);
        buffer = canvas.getBufferStrategy();
        // Finalize the VM
       System.gc();
        System.runFinalization();
        // Panel settings
       setFocusable(true);
        running = true;
        // Start the game loop in new thread
       Thread th = new Thread(this);
        th.start();
    }

}

And I render like this.

1  
2  
3  
4  
Graphics2D g = (Graphics2D)buffer.getDrawGraphics();
render(g);
g.dispose();
buffer.show();

It works as an applet perfectly. To make it work as an application, I added the same applet to a jframe.

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
public static void main(String[] args){
    JFrame f = new JFrame("My Game");
    setUndecorated(true);
    setResizable(false);
    setSize(width, height);
    MyGame game = new MyGame();
    f.add(game);
    f.setVisible(true);
    game.start();
}


This code opens a window. The sounds are heard which indicates that the game is running but the canvas is invisible.

Thanks

Offline Phased
« Reply #1 - Posted 2013-01-25 08:12:13 »

I think your not actually adding canvas to the jframe, i think you would need to add game.canvas.

Not really sure, I have always extended canvas, and have not really touched JFrames and that in a while
Offline SHC

Senior Member


Medals: 8



« Reply #2 - Posted 2013-01-25 08:16:30 »

The graphics are visible when I minimize and again opened the game. Also since I'm adding the canvas to the game and adding the game to the frame, why is it not visible?

Games published by our own members! Check 'em out!
Play the free demo of Revenge of the Titans!
Offline 65K
« Reply #3 - Posted 2013-01-25 08:35:31 »

Try to add the canvas to the content pane of the JFrame.

Offline SHC

Senior Member


Medals: 8



« Reply #4 - Posted 2013-01-25 10:25:29 »

Thanks 65K. It solved after adding the game (not the canvas) to the content pane. Do you know why it happened?

Pages: [1]
  ignore  |  Print  
 
 

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Try the Free Demo of Revenge of the Titans

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!
cubemaster21 (77 views)
2013-05-17 21:29:12

alaslipknot (89 views)
2013-05-16 21:24:48

gouessej (119 views)
2013-05-16 00:53:38

gouessej (113 views)
2013-05-16 00:17:58

theagentd (126 views)
2013-05-15 15:01:13

theagentd (113 views)
2013-05-15 15:00:54

StreetDoggy (156 views)
2013-05-14 15:56:26

kutucuk (179 views)
2013-05-12 17:10:36

kutucuk (179 views)
2013-05-12 15:36:09

UnluckyDevil (186 views)
2013-05-12 05:09:57
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

Java Data structures
by Roquen
2013-03-29 13:21:12

Topic Request
by kutucuk
2013-03-22 21:42:01
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!
Page created in 0.149 seconds with 21 queries.