I took a similar path as yours some time ago. Instead of extending InteractionDialog, I created a separate class with similar functionality and tweaked part of its code. I recall that extending it wasn't working.
I am sending you my version of it, perhaps you will find it useful.. Sample usage:
Label titleLable = new Label("some title");
titleLable.getAllStyles().setAlignment(Component.CENTER);
Container myTitle = new Container(new BorderLayout());
Border lineBorder = Border.createLineBorder(2, 0x33b5e5);
Border emptyBorder = Border.createEmpty();
Border newBorder = Border.createCompoundBorder(emptyBorder, lineBorder, emptyBorder, emptyBorder);
myTitle.getAllStyles().setBorder(newBorder);
myTitle.add(BorderLayout.CENTER, titleLable);
newDlg.add(BorderLayout.NORTH, myTitle);
Button okBtn = new Button("OK");
okBtn.getUnselectedStyle().setAlignment(4);
okBtn.addActionListener(e -> {
newDlg.disposeToTheTop();
});
FlowLayout centerLayout = new FlowLayout();
centerLayout.setValign(CENTER);
Container boxCenter = new Container(centerLayout);
SpanLabel msgLbl = new SpanLabel("some msg");
boxCenter.add(msgLbl);
newDlg.add(CENTER, boxCenter);
newDlg.add(BorderLayout.SOUTH, okBtn);
int msgHeight = boxCenter.getPreferredH();
int height = newDlg.getPreferredH();
int width = newDlg.getPreferredW();
int sideMargins = (f.getWidth() - width - 30) / 2;
int verticalMargin = (f.getHeight() - height - f.getToolbar().getHeight()) /2;
newDlg.setDisposeWhenPointerOutOfBounds(true);
newDlg.setAnimationSync(true);
newDlg.show(verticalMargin/2, verticalMargin + verticalMargin/2, sideMargins, sideMargins);
int newMsgHeight = boxCenter.getPreferredH();
if(newMsgHeight != msgHeight)
{
int newHeight = (newMsgHeight - msgHeight) + height;
int newVerticalMargin = (f.getHeight() - newHeight - f.getToolbar().getHeight()) /2;
newDlg.resize(verticalMargin/2, verticalMargin/2 + (newVerticalMargin - (verticalMargin - newVerticalMargin)), sideMargins, sideMargins, false);
}