It's really a simple answer as to why it does that.
Due to the way that swing and the like works, most objects either are assigned a size by what's inside of them or by the layout manager of the object that they're added to (Typically more the latter than the former, but there are objects where the former is important). You're adding the
base object to a Container (JFrame in the form of DescendedRupture) that doesn't have a layout manager, and since you do not manually adjust the size of the object, it has nowhere to get its size from (So it has dimensions of 0.) Check if your other panel is being added to a container that
has a layout manager assigned to it.
To fix this issue, you can replace
1 2 3 4 5 6 7
| DescendedRupture() { super("Descended Rupture"); addWindowListener(this); setSize(806,624); setResizable(false); add(base); |
with
1 2 3 4 5 6 7 8
| DescendedRupture() { super("Descended Rupture"); addWindowListener(this); setSize(806,624); setResizable(false); setLayoutManager(new BorderLayout()); add(base, BorderLayout.CENTER); |