java - Two JPanels in JFrame , One under other -


i've got 2 panels in frame, , set them 1 under other, , first should have size 9/10*screen frame, , second 1/10.

i've tried gridlayout (2 rows , 1 column) can't set them specific size.

how should that?


ok maybe write code:

i writing game - pacman, , in first panel there whole game, , in second display player info(like score, name etc.) first set on 80% screen, , second on 20%.

what more frame should resizeable , in it, sa have change size of panels(keeping 80% 20%) when size of frame changing. wrote initcomponents().

package pacman;  import java.awt.borderlayout; import java.awt.dimension; import java.awt.eventqueue; import java.awt.gridlayout; import java.awt.toolkit; import javax.imageio.imageio; import javax.swing.jframe; import java.awt.image; import java.awt.event.componentadapter; import java.awt.event.componentevent;  public class pacman extends jframe implements items {    image image; public pacman()  {         initcomponents();     try {                  image = imageio.read( pac.class.getresourceasstream("/img/pac02.gif"));              } catch (exception e) {         system.out.println("blad prz otwieraniu " + e);         system.exit(0);        }       int screen_width = toolkit.getdefaulttoolkit().getscreensize().width;     int screen_height = toolkit.getdefaulttoolkit().getscreensize().height;           this.setlocation(screen_width/3, screen_height/3);       this.setlayout(new borderlayout());     this.getcontentpane().add(panel, borderlayout.center);     this.getcontentpane().add(panel2, borderlayout.page_end);        setdefaultcloseoperation(jframe.exit_on_close);     this.seticonimage(image);  settitle("..::pacman::.."); setdefaultcloseoperation(exit_on_close); this.setpreferredsize(new dimension(416,438)); this.pack(); setlocationrelativeto(null);   setvisible(true); } private void initcomponents() {   setdefaultcloseoperation(jframe.exit_on_close);    this.addcomponentlistener(new componentadapter() {       @override   public void componentresized(componentevent e) {          int width = e.getcomponent().getsize().width;            int height = e.getcomponent().getsize().height;             panel.setsize(width, height*8/10) ;            panel2.setsize(width, height*2/10);  } });   }   public static void main(string[] args) {     eventqueue.invokelater(new runnable() {          @override         public void run() {            new pacman();       }     });   }      } 

gridlayout wrong layout if want different sized components. javadoc states:

the container divided equal-sized rectangles, , 1 component placed in each rectangle.

if you've got jpanels, might want consider jsplitpane - see javadoc or tutorial.

edit: based on edit/code, jsplitpane looks solution problem. can set divider location after creation using setdividerlocation(double) - see javadoc - e.g.

jsplitpane split = new jsplitpane(jsplitpane.vertical); split.settopcomponent(toppanel); split.setbottomcomponent(bottompanel); split.setdividerlocation(0.8); 

alternatively, since it's quite hard suggest layout without knowing intentions gui, should consider taking @ visual guide layouts.


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -