Reputation: 13190
I have a JDialog that contains a large number of options and it was all working fine, however I have changed it so that by default some options are non visible until the unless the user clicks on the Show Advanced button.
When they they do this the options are displayed but because the dialog is not tall enough since it was sized based on those options being hidden a vertical scrollbar is added.
I want the dialog to be sized so large enough for when the advanced options are enabled. I have attempted this by creating the dialog with the advanced option displayed, calling pack() to fit based on advanced options being visible
this.pack();
showAdvancedAction.actionPerformed(null);
and then afterwards calling method to make advanced options invisble.
But still when diplayed the dialog is only large enough for when the options are not shown so when click on Show Advanced the dialog adds scroll bar again.
How can I resolve this.
Upvotes: 0
Views: 68
Reputation: 324098
this.pack();
showAdvancedAction.actionPerformed(null);
You have the order reversed. You need to pack the frame AFTER the components have been made visible.
showAdvancedAction.actionPerformed(null);
this.pack();
Upvotes: 0
Reputation: 1
In java swing you can add buttons or components over the panel. but when you try to resize these then you need to use Grid Layout/ GridLayout class. Try using Grid Layouts and arrange your controls by providing X, Y co-ordinate values. It will definitely work.
Upvotes: -1