java - Why does the first panel added to a frame disappear? -
below example of adding 2 panels frame. 1 panel (the 2nd, red panel) appears.
why first panel disappear?
import java.awt.*; import javax.swing.*; import javax.swing.border.emptyborder; public class disappearingpanelinframe { disappearingpanelinframe() { jframe f = new jframe(this.getclass().getsimplename()); f.setdefaultcloseoperation(jframe.dispose_on_close); f.add(new coloredpanel(color.green)); f.add(new coloredpanel(color.red)); f.pack(); f.setvisible(true); } public static void main(string[] args) { runnable r = new runnable() { @override public void run() { new disappearingpanelinframe(); } }; swingutilities.invokelater(r); } } class coloredpanel extends jpanel { coloredpanel(color color) { setbackground(color); setborder(new emptyborder(20, 150, 20, 150)); } }
- the default layout of
jframe
(or more in case, content pane of frame)borderlayout
. - when adding component
bordelayout
no constraint, swing api put component incenter
. - a
borderlayout
can contain one component in each of 5 layout constraints. - when second component added same (in case
center
) constraint ofborderlayout
, implementation of java display last component added.
as better approach depends on specific needs of user interface.
Comments
Post a Comment