天道酬勤,学无止境

jtabbedpane

Change the background color behind the tabs of a JTabbedPane?

The problem is referred to in the question. I intend to change the color of the area marked with an 'X' in the image below but I don't know how to do it. I've tried to change the JTabbedPane background but it didn't work. I apologize in advance for any English mistakes I may have made. Minimal reproducible example public class MainClass { public static void main(String[] args) { JFrame frame = new JFrame("TabbedPane Error"); // creates 2. JFrame JTabbedPane tabbedPane = new JTabbedPane(); tabbedPane.setBackground(Color.RED); tabbedPane.addTab("Browser",new JPanel()); tabbedPane.addTab("Asset

2021-09-24 11:15:21    分类:问答    java   swing   jtabbedpane

JTabbedPane 跟踪上一个选项卡选择(JTabbedPane track previous tab selection)

问题 我有一个扩展 BasicTabbedPaneUI 的类,并覆盖了一些绘制组件。 我希望能够将 addMouseListener 添加到我使用它的类中,以检查用户何时选择当前选项卡索引和上一个选项卡索引的选项卡。 注意:用户可以通过键盘导航到选项卡,而不仅仅是单击选项卡,我希望能够确保以前的索引跟踪这一点。 因此,在下面的示例中,无论用户是通过键盘还是鼠标导航到它,preIndex 都将等于先前的索引。 请问有什么想法吗? tabbedPane.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { JTabbedPane tabP = (JTabbedPane) e.getSource(); int currIndex = tabP.indexAtLocation(e.getX(), e.getY()); int prevIndex = ????? } }); 非常感谢!!!! 回答1 我将使用更改侦听器而不是鼠标侦听器(在两种情况下都调用它:用于鼠标和键事件触发的选项卡更改)。 如果您无法确定以前选择的选项卡,您可以使用以下方法:将当前选择的选项卡索引保存为选项卡窗格的客户端属性。 private static final String OLD_TAB

2021-09-20 05:55:19    分类:技术分享    java   swing   jtabbedpane

是什么导致我的基于 JTabbedPane 的 Swing 应用程序性能下降?(What is causing slow performance in my JTabbedPane-based Swing application?)

问题 我有一个用于创建 RPG 角色的 Swing 应用程序。 它有一个嵌套的 JTabbedPane 架构,所以有一个HeroTabsPanel ,它有HeroPanels ,每个都有更多的选项卡,如 Stats、Items 等。 因此,GUI 由用于英雄的上部选项卡面板、用于当前英雄选项卡的下部选项卡面板和一个EditViewPanel 组成,该面板在选择选项卡时显示与每个选项卡对应的EditingView 。 性能从一开始就很糟糕,但是当我添加上层英雄标签(同时编辑多个英雄)时,标签之间的切换变得更加缓慢。 在所有代码完成添加组件后,需要几分钟时间才能在新 JFrame 中显示某些内容。 这可能是布局吗? 我正在使用具有绝对定位的MigLayout 。 实际上,在我添加上面的选项卡之前,已经存在一些“绝对链接值中的不稳定循环依赖!” 问题,但现在没有。 在stateChanged() 中,我有以下内容: editViewPanel.activateView(currentTab.getLinkedView()); 在activateView() 中: removeAll(); currentView = heroView; add(currentView, "pos 0 0"); currentView.refresh(); revalidate(); 但是就像我说的

2021-09-14 20:37:59    分类:技术分享    java   performance   swing   jtabbedpane   miglayout

如何完全从 JTabbedPane 处理选项卡式窗格组件(How to dispose a tabbed pane component completely from a JTabbedPane)

问题 我向 JTabbedPane 添加了几个选项卡。 每个选项卡都包含一个 JPanel。 我现在通过调用 JTabbedPane.remove([tab index]) 来删除选项卡。 这将删除选项卡,一切都很好,除了当我分析应用程序时,添加到 JTabbedPane 的 JPanel 不会被“处理”,并且引用仍然存在于堆中。 在添加选项卡并关闭它的 100 次操作后,应用程序内存不足。 我使用 Eclipse MAT 分析了堆转储,并单击了关闭选项卡后不应该存在的 JPanel 的 Immediate Dominators。 Immediate Dominator 作为 JTabbedPane 回来了。 然后我写了一个 SSCCE 来重现问题,发现我无法重现该问题。 当我关闭选项卡时,JPanel 会被处理掉。 有什么我想念的吗。 为什么即使在某些情况下关闭选项卡后 JTabbedPane 仍会保留对 JPanel 的引用? 更新: 我正在更详细地查看 MAT 直方图,发现了一些奇怪的东西。 这是选项卡打开时堆转储的快照。 下面是正确的类层次结构。 HomeFrame 包含一个 JTabbedPane,其中包含一个 MasterDataDisplayPanel,其中包含一个 ShareholderDtlsPanel。 另请注意对象 ShareholderDtlsPanel -

2021-09-12 23:03:57    分类:技术分享    java   swing   garbage-collection   jtabbedpane   swingx

JTabbedPane 组件何时获得其大小?(When does a JTabbedPane component get its size?)

问题 当我将JPanel添加到JTabbedPane以计算其他值时,我需要知道它的大小。 如果我调用add(Component)方法,那么Component什么时候获得它的大小? 例如, JTabbedPane tabbedPane = new JTabbedPane(); JPanel panel = new JPanel(); panel.setBackGround(Color.RED); // pretty colors! tabbedPane.add(panel); int newTabIndex = tabbedPane.indexOfComponent(panel); tabbedPane.setSelectedIndex(newTabIndex); 先感谢您! 编辑@mKorbel 建议将 JPanel 的可见性设置为 true: JTabbedPane tabbedPane = new JTabbedPane(); JPanel panel = new JPanel(); panel.setBackGround(Color.RED); tabbedPane.add(panel); panel.setVisible(true); // NEW LINE int newTabIndex = tabbedPane.indexOfComponent(panel)

2021-09-12 12:18:14    分类:技术分享    java   swing   jpanel   jtabbedpane

java swing TabbedPane位置tabheaders从右下到左(java swing TabbedPane position tabheaders bottom right to left)

问题 我想知道是否有可能将 Tabbed 窗格放置在右下角,我想将容器放在彼此上方,一个标签从右上到左(没问题/默认),另一个与底部的标签标签(到目前为止很好)从右到左开始。 我想象的设计是: | tab display | | tab display | | tab display | ----------------------------------------------- _________________________ | tab top | another| | Bottom Tab| Second Tab|______________________ | | 好吧,我的 ascy 绘图能力有限,但我希望你能看懂。 有什么方法可以将布局管理器添加到选项卡式窗格以布局选项卡标签吗? 我在哪里可以找到这样的例子? Goodling 建议将菜单栏与 CardLayout 结合用于选项卡式窗格。 但是我不知道如何绘制菜单栏,使其看起来像选项卡。 (我只是查看了用于自定义绘图的 Swingtrail,但它只是继续讨论一般可能性,此外,如果我这样做,我会失去样式功能。我现在唯一能想到的就是使用没有内容的选项卡式窗格,并且让它通过事件监听器控制另一个带有卡片布局的容器。 有什么建议? PS:我必须用java 1.6来实现解决方案 回答1 在这种情况下,您可以为

2021-09-11 02:13:07    分类:技术分享    java   swing   jtabbedpane

When does a JTabbedPane component get its size?

I need to know the size of a JPanel when I add it to a JTabbedPane to compute other values. If I call the add(Component) method, when does the Component get its size? For example, JTabbedPane tabbedPane = new JTabbedPane(); JPanel panel = new JPanel(); panel.setBackGround(Color.RED); // pretty colors! tabbedPane.add(panel); int newTabIndex = tabbedPane.indexOfComponent(panel); tabbedPane.setSelectedIndex(newTabIndex); Thank you in advance! Edit @mKorbel suggested setting the visibility of the JPanel to true: JTabbedPane tabbedPane = new JTabbedPane(); JPanel panel = new JPanel(); panel

2021-09-05 04:25:38    分类:问答    java   swing   jpanel   jtabbedpane

JTabbedPane track previous tab selection

I have a class that extends BasicTabbedPaneUI and does some paint component overriding. I want to be able to add a addMouseListener to the class I use it in to check when the user selects a tab the current tab index and the previous tab index. NOTE: The user is able to navigate to tabs via the keyboard and not just clicking on a tab and I want to be able to make sure the previous index tracks this. So in the example below preIndex would equal the previous index regardless to whether the user navigated to it via the keyboard or mouse. Any ideas please? tabbedPane.addMouseListener(new

2021-09-04 14:58:43    分类:问答    java   swing   jtabbedpane

What is causing slow performance in my JTabbedPane-based Swing application?

I have a Swing application for creating RPG characters. It has a nested JTabbedPane architecture, so there is a HeroTabsPanel which has HeroPanels and each of those has some more tabs like Stats, Items etc. So the GUI is comprised of the upper tabbed pane for heroes, the lower tabbed pane for current hero tab and an EditViewPanel which displays an EditingView corresponding to each Tab when the tab is selected. Performance has been bad from the start, but when I added the upper level hero-tabs (to have multiple heroes in editing simultaneously), switching between tabs became even slower. It

2021-09-04 13:25:50    分类:问答    java   performance   swing   jtabbedpane   miglayout

java swing TabbedPane position tabheaders bottom right to left

I wonder if there is any possibility to position a Tabbed pane to the bottom right, I want to make to containers above each other, the one with the tablabels at the top right to left (no problem/default), and the other one with the tablabels at bottom (so far so good) starting from right to left. The design I imagine is: | tab display | | tab display | | tab display | ----------------------------------------------- _________________________ | tab top | another| | Bottom Tab| Second Tab|______________________ | | well, my ascy drawing capabilities are limited but I hope you get the picture. Is

2021-09-04 04:22:57    分类:问答    java   swing   jtabbedpane