java – JTabbedPane:如果堆叠/ Nimbus,则避免自动重新排序选项卡
作者:互联网
JTabbedPane就是我的目的所需要的.
我的水平空间非常有限,所以我的标签堆叠,这是完全可以的.
但默认行为是,如果用户点击Tab,则* Tabs会重新排序,以便活动Tab变为低于mos * t.在理论上看起来非常直观和合乎逻辑的是实际使用中的噩梦,因为用户松散地追踪“哪个是哪个”.它只是简单的混乱,我一次又一次地被告知.
我想应该可以覆盖UI的某些方法来避免这种行为(我不关心这是否在物理上可能与纸卡:-).
有谁知道我需要做什么?我正在使用Nimbus LAF,这似乎并不容易.
(我考虑过使用radiobuttons / cardLayout,但我需要在标签标题中放置一个自定义面板,而radiobuttons只能有一个字符串或图标.与JToggleButton相同…)
任何提示都非常受欢迎!
谢谢&亲切的问候,
菲利普
解决方法:
好的,我找到了问题.在
package javax.swing.plaf.basic.BasicTabbedPaneUI;
它说的是这样的
// Rotate run array so that selected run is first
if (shouldRotateTabRuns(tabPlacement)) {
rotateTabRuns(tabPlacement, selectedRun);
}
遗憾的是,似乎没有简单的设置标志和你去的方式来改变它.
如果你省略了对rotateTabRuns的调用(tabPlacement,selectedRun),你应该没问题;或者更改shouldRotateTabRuns(tabPlacement)…但是,为此,你必须覆盖一大堆类…取决于你使用的plaf.
它继承了这样的
Basic > Synth > Nimbus
在每个L& F级别,有几个类可以自定义……我没有数.
希望能帮助到你! :d
编辑
哦是的… @mkorbel已经提供了这种和谐的解决方案为什么不使用它?
标签:jtabbedpane,java,constants,swing,nimbus 来源: https://codeday.me/bug/20190826/1733514.html