java - Is it a simple way to fill a cell of GridBagLayout with a JPanel? -


is simple way create panel inside borderlayout fill cell?

here simple example, i'd grey panel (pnltitle) wide containing cell (100 pixels), i'd without pnltitle.setpreferredsize(new dimension(100, 20));

here code:

import java.awt.borderlayout; import java.awt.color; import java.awt.dimension; import java.awt.gridbagconstraints; import java.awt.gridbaglayout;  import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel;  public class testcode2_insidecolumn {  public static void main(string[] args) {      jframe window = new jframe("test");     window.setdefaultcloseoperation(jframe.exit_on_close);     window.setsize(400, 200);     window.setminimumsize(new dimension(350, 150));      jpanel panelmain = new jpanel(new borderlayout());     window.add(panelmain);      jlabel labeln = new jlabel("north");     panelmain.add(labeln, borderlayout.north);      jlabel labels = new jlabel("south");     panelmain.add(labels, borderlayout.south);      gridbaglayout innerlayout = new gridbaglayout();     gridbagconstraints innerconstraints = new gridbagconstraints();      //second (and last) column won't have fixed size, last number useless     innerlayout.columnwidths = new int[] {100, 100};      jpanel innerpanel = new jpanel(innerlayout);     innerpanel.setbackground(new color(0, 220, 250));     panelmain.add(innerpanel, borderlayout.center);      innerconstraints.anchor = gridbagconstraints.northwest;     innerconstraints.weightx = 0.0;     innerconstraints.weighty = 0.0;     innerconstraints.gridx = 0;     innerconstraints.gridy = 0;      jlabel lbltitle = new jlabel("title");     jpanel pnltitle = new jpanel(new borderlayout());     pnltitle.add(lbltitle);     innerlayout.setconstraints(pnltitle, innerconstraints);     innerpanel.add(pnltitle);      innerconstraints.gridx = 1;     innerconstraints.weightx = 1.0;     innerconstraints.fill = gridbagconstraints.horizontal;     jlabel lbldescription = new jlabel("label");     innerlayout.setconstraints(lbldescription, innerconstraints);     innerpanel.add(lbldescription);      window.setvisible(true); }  } 

try

innerconstraints.fill = gridbagconstraints.both 

from javadocs

both public static final int both resize component both horizontally , vertically. 

Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -