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
Post a Comment