gpt4 book ai didi

Java JTabbedPane 立即切换选项卡

转载 作者:行者123 更新时间:2023-11-30 05:04:09 26 4
gpt4 key购买 nike

我有一个带有两个选项卡的简单 JTabbedPane 组件。当在其中一个选项卡上触发按钮事件时,我希望立即将当前 View 设置为另一个选项卡。我可以在相关按钮的 actionPerformed 方法中使用 setSelectedIndex(int) 成功地切换当前选项卡,但按钮事件的其余功能有时可能需要一段时间才能完成。

看起来 setSelectedIndex(int) 更改不会立即发生,并且仅在由按钮单击/按下触发的 actionPerformed 方法主体完成时才会发生。

我想在单击/按下按钮时切换选项卡的原因是,用户可以在另一个选项卡上的文本区域中看到一条消息,告诉他们“正在处理,请等待”等,而其余的则执行按钮单击功能。该功能的结果到达后将取代“...请稍候”消息。

所以现在发生的事情是,我单击按钮,它会卡住在该选项卡上,直到按钮功能完全完成,然后进行切换。因此,“...请稍候”消息实际上从未见过。

我不知道该怎么办。也许为“功能”创建一个新线程,并让按钮单击事件启动该线程,以便按钮事件可以在等待结果时完成并切换选项卡。只是大声思考。如有任何帮助,我们将不胜感激。

-罗布

最佳答案

在我看来,好像你遇到的线程问题比什么都重要,这会卡住你的 GUI,使其在完成之前完全没有响应,从而延迟你的选项卡式 Pane 交换。如果您在操作执行方法中运行任何长时间运行的进程,请在后台线程(例如 SwingWorker 提供的)中执行它们,然后您的 GUI 将变得更加响应。

有关详细信息,请查看本教程:Concurrency in Swing

如果尽管有了这些建议,您仍然遇到问题,那么您可能需要发布一些有问题的代码。最好的是,如果您可以创建一个小型可编译和可运行的应用程序来重现该问题, SSCCE .

¡Que tengas suerte!

关于Java JTabbedPane 立即切换选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5693906/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com