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.

disappearing panel in frame

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 in center.
  • a borderlayout can contain one component in each of 5 layout constraints.
  • when second component added same (in case center) constraint of borderlayout, implementation of java display last component added.

as better approach depends on specific needs of user interface.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -