// Pack, and constrain the minimum size.
pack();
addComponentListener(new SizeConstrainer(getSize()));
// Override the focus traversal policy to set the default component.
final FocusTraversalPolicy defaultPolicy = getFocusTraversalPolicy();
setFocusTraversalPolicy(new FocusTraversalPolicy() {
@Override
public Component getComponentAfter(Container focusCycleRoot, Component aComponent) {
return defaultPolicy.getComponentAfter(focusCycleRoot, aComponent);
}
@Override
public Component getComponentBefore(Container focusCycleRoot, Component aComponent) {
return defaultPolicy.getComponentBefore(focusCycleRoot, aComponent);
}
@Override
public Component getFirstComponent(Container focusCycleRoot) {
return defaultPolicy.getFirstComponent(focusCycleRoot);
}
@Override
public Component getLastComponent(Container focusCycleRoot) {
return defaultPolicy.getLastComponent(focusCycleRoot);
}
@Override
public Component getDefaultComponent(Container focusCycleRoot) {
return workspaceNameEntryField;