Your code is adding widgets (from the tileSlots array) to the DialogLayout, but does not add them to any groups (as I already said).
Which in turn means that the DialogLayout is incomplete and will not do any kind of layout work.
Your TabbedPane asks it's content (the DialogLayout) for it's minimum, preferred and maximum size - but as the DialogLayout is incomplete it will return 0.
And if you read through the InventoryPanel
class, you will see that it doesn't use DialogLayout but does it's layout and preferred size computation. While your code uses a DialogLayout without providing layout groups.