Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


#Actualwarnexus

Posted 08 February 2013 - 11:21 PM

So I ran into some rather interesting problems. I have been playing around with the same three layouts that I learned in my introductory java course last year: BorderLayout, FlowLayout and GridLayout for a good hour in the game I have been developing for the past month.

 

None of the three layouts are very nice to my game canvas. The reason, is the right-half portion of the game canvas gets obscured which I also do not know how to solve. I think the one layout that did the least amount of damage to my game canvas out of the three is BorderLayout which is the one depicted in this picture below. Although, from a user standpoint, you can see BorderLayout still hurts the gameplay experience of my arcade shooter clone.

 

The heart image and the life image are both JLabel objects. The middle is the game canvas(from what I seen BorderLayout seems to have messed up my game canvas). The source code is posted at the bottom-most. 

 

I know I am doing this wrong but I think I struggle enough. mellow.png  Perhaps I need to use a layout I have not been taught? rolleyes.gif

 

Here is what the game looks if it uses BorderLayout:

javaLayout_zps51059ee0.jpg

 

If my game canvas was left alone with no layout it would look nice like this:

javaBorderLayout_zpsd87ea07a.jpg

 

public class Game extends Canvas{

 

     private JPanel panel;

 

     private Game(){

 

     panel = (JPanel)container.getContentPane();

        
        panel.setPreferredSize(new Dimension(width,height));
 
        panel.setLayout(new BorderLayout());
        // add canvas to panel
        panel.add(this,BorderLayout.CENTER);
        
        ShipLifeTitle shipLifeTitle = null;
        try {
            shipLifeTitle = new ShipLifeTitle();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        panel.add(shipLifeTitle,BorderLayout.EAST);
        
        ShipLifeHeart shipLifeHeart = null;
        try{
            shipLifeHeart = new ShipLifeHeart();
        }catch(IOException e)
        {
            e.printStackTrace();
        }
        
        panel.add(shipLifeHeart,BorderLayout.WEST);
        
        //shipLifeTitle.setPreferredSize(new Dimension(shipLifeTitle.getImage().getWidth(null),shipLifeTitle.getImage().getHeight(null)));
        //panel.add(shipLifeTitle.getImage(),BorderLayout.SOUTH);
 
                
        container.setLocation(300, 200);
        setBounds(0,0,width,height);
        container.pack();
        
        
        container.setResizable(false);
        container.setVisible(true);
 

 

     }

 

}

 

 

public class ShipLifeTitle extends JLabel {
 
    public ShipLifeTitle() throws IOException{
        ImageIcon icon = new ImageIcon("src/Ship/shipLifeTitle.png");
        setIcon(icon);
    }
}
 
public class ShipLifeHeart extends JLabel {
 
    public ShipLifeHeart() throws IOException{
        ImageIcon icon = new ImageIcon("src/Ship/shipLifeHeart.png");
        setIcon(icon);
        
    }
}
 

#2warnexus

Posted 08 February 2013 - 11:20 PM

So I ran into some rather interesting problems. I have been playing around with the same three layouts that I learned in my introductory java course last year: BorderLayout, FlowLayout and GridLayout for a good hour in the game I have been developing for the past month.

 

None of the three layouts are very nice to my game canvas. The reason, is the right-half portion of the game canvas gets obscured which I also do not know how to solve. I think the one layout that did the least amount of damage to my game canvas out of the three is BorderLayout which is the one depicted in this picture below. Although, from a user standpoint, you can see BorderLayout still hurts the gameplay experience of my arcade shooter clone.

 

The heart image and the life image are both JLabel objects. The middle is the game canvas(from what I seen BorderLayout seems to have messed up my game canvas). The source is posted at the bottom-most. 

 

I know I am doing this wrong but I think I struggle enough. mellow.png  Perhaps I need to use a layout I have not been taught? rolleyes.gif

 

Here is what the game looks if it uses BorderLayout:

javaLayout_zps51059ee0.jpg

 

If my game canvas was left alone with no layout it would look nice like this:

javaBorderLayout_zpsd87ea07a.jpg

 

public class Game extends Canvas{

 

     private JPanel panel;

 

     private Game(){

 

     panel = (JPanel)container.getContentPane();

        
        panel.setPreferredSize(new Dimension(width,height));
 
        panel.setLayout(new BorderLayout());
        // add canvas to panel
        panel.add(this,BorderLayout.CENTER);
        
        ShipLifeTitle shipLifeTitle = null;
        try {
            shipLifeTitle = new ShipLifeTitle();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        panel.add(shipLifeTitle,BorderLayout.EAST);
        
        ShipLifeHeart shipLifeHeart = null;
        try{
            shipLifeHeart = new ShipLifeHeart();
        }catch(IOException e)
        {
            e.printStackTrace();
        }
        
        panel.add(shipLifeHeart,BorderLayout.WEST);
        
        //shipLifeTitle.setPreferredSize(new Dimension(shipLifeTitle.getImage().getWidth(null),shipLifeTitle.getImage().getHeight(null)));
        //panel.add(shipLifeTitle.getImage(),BorderLayout.SOUTH);
 
                
        container.setLocation(300, 200);
        setBounds(0,0,width,height);
        container.pack();
        
        
        container.setResizable(false);
        container.setVisible(true);
 

 

     }

 

}

 

 

public class ShipLifeTitle extends JLabel {
 
    public ShipLifeTitle() throws IOException{
        ImageIcon icon = new ImageIcon("src/Ship/shipLifeTitle.png");
        setIcon(icon);
    }
}
 
public class ShipLifeHeart extends JLabel {
 
    public ShipLifeHeart() throws IOException{
        ImageIcon icon = new ImageIcon("src/Ship/shipLifeHeart.png");
        setIcon(icon);
        
    }
}
 

#1warnexus

Posted 08 February 2013 - 11:17 PM

So I ran into some rather interesting problems. I have been playing around with the same three layouts that I learned in my introductory java course last year: BorderLayout, FlowLayout and GridLayout for a good hour in the game I have been developing for the past month.

 

None of the three layouts are very nice to my game canvas. The reason, is the right-half portion of the game canvas gets obscured which I also do not know how to solve. I think the one layout that did the least amount of damage to my game canvas out of the three is BorderLayout which is the one depicted in this picture below. Although, from a user standpoint, you can see BorderLayout still hurts the gameplay experience of my arcade shooter clone.

 

The heart image and the life image are both JLabel objects. The middle is the game canvas(from what I seen BorderLayout seems to have messed up my game canvas)

 

Here is what the game looks if it uses BorderLayout:

 

If my game canvas was left alone with no layout it would look nice like this:

 

public class Game extends Canvas{

 

     private JPanel panel;

 

     private Game(){

 

     panel = (JPanel)container.getContentPane();

        
        panel.setPreferredSize(new Dimension(width,height));
 
        panel.setLayout(new BorderLayout());
        // add canvas to panel
        panel.add(this,BorderLayout.CENTER);
        
        ShipLifeTitle shipLifeTitle = null;
        try {
            shipLifeTitle = new ShipLifeTitle();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        panel.add(shipLifeTitle,BorderLayout.EAST);
        
        ShipLifeHeart shipLifeHeart = null;
        try{
            shipLifeHeart = new ShipLifeHeart();
        }catch(IOException e)
        {
            e.printStackTrace();
        }
        
        panel.add(shipLifeHeart,BorderLayout.WEST);
        
        //shipLifeTitle.setPreferredSize(new Dimension(shipLifeTitle.getImage().getWidth(null),shipLifeTitle.getImage().getHeight(null)));
        //panel.add(shipLifeTitle.getImage(),BorderLayout.SOUTH);
 
                
        container.setLocation(300, 200);
        setBounds(0,0,width,height);
        container.pack();
        
        
        container.setResizable(false);
        container.setVisible(true);
 

 

     }

 

}

 

 

public class ShipLifeTitle extends JLabel {
 
    public ShipLifeTitle() throws IOException{
        ImageIcon icon = new ImageIcon("src/Ship/shipLifeTitle.png");
        setIcon(icon);
    }
}
 
public class ShipLifeHeart extends JLabel {
 
    public ShipLifeHeart() throws IOException{
        ImageIcon icon = new ImageIcon("src/Ship/shipLifeHeart.png");
        setIcon(icon);
        
    }
}
 

 


PARTNERS