a JTabbedPane is just what I need for my purpose. I have very limited horizontal space, so my Tabs get stacked, which is perfectly ok.
But the default behaviour is that if user clicks on a Tab, the *Tabs get re-sorted so that the active Tab becomes the lower-mos*t. What looks very intuitive and logical in theory, is a nightmare in practical use, because the users loose track of "which was which". Its just simply plain confusing, I am told again and again.
I guess it should be possible to override some method of the UI to avoid this behaviour (and I dont care whether this would be physically possible with paper cards :-) .
Has anyone any idea where I need to do that? I am using Nimbus LAF, which does not seem to make it easier.
(I thought about using radiobuttons/cardLayout, but I need to put a custom panel in the tab title, and radiobuttons can only have a string or icon. Same for JToggleButton...)
Any hints are greatly welcome!
Thanks & Kind regards, Philipp
Okay, I found the Problem. In
package javax.swing.plaf.basic.BasicTabbedPaneUI;
it says something like this
// Rotate run array so that selected run is first
if (shouldRotateTabRuns(tabPlacement)) {
rotateTabRuns(tabPlacement, selectedRun);
}
Its a pity that there seems to be no easy set-a-flag-and-there-you-go-way is for changing that.
Although you should be fine if you omitted the call to rotateTabRuns(tabPlacement, selectedRun);
or change shouldRotateTabRuns(tabPlacement)
for that matter... however, to do so you would have to override a whole bunch of classes... depending on which plaf you use.
It inherits like this
Basic > Synth > Nimbus
And on each L&F-level there are several classes to customize... I didn't count.
Hope it helps! :D
Edit Oh yeah... @mkorbel already provided sort of the solution with this aephyr why not use that?