微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java JTabbedPane立即切换选项卡

如何解决Java JTabbedPane立即切换选项卡

我有一个带有两个标签的简单JTabbedPane组件。当在选项卡之一上触发按钮事件时,我希望当前视图立即设置为另一个选项卡。我可以在有问题的按钮的actionPerformed方法中使用setSelectedindex(int)成功获取当前选项卡,但是按钮事件的其余功能有时可能需要一段时间才能完成。 似乎不会立即发生setSelectedindex(int)更改,仅在由按钮单击/按下触发的actionPerformed方法的主体完成时才会发生。 我要在单击/按下按钮时切换选项卡的原因是,以便用户可以在另一个选项卡的文本区域中看到一条消息,告诉他们“正在处理,请稍候”等,而其余的按钮单击功能被执行。该功能的结果在到达时将替换“ ...请稍候”消息。 因此,现在发生的是单击按钮,它冻结在该选项卡上,直到按钮功能完全完成,然后切换。因此,“ ...请稍候”消息实际上从未出现过。 我不确定该怎么办。可能为“功能性”创建一个新线程,并让button click事件从该线程开始,以便按钮事件可以完成并在等待结果时切换选项卡。 只是大声思考。任何帮助表示赞赏。 -抢     

解决方法

在我看来,线程问题比什么都重要,这冻结了GUI,使其完全无响应,直到完成为止,从而延迟了选项卡式窗格的交换。如果您在执行操作的方法中运行任何长时间运行的进程,请改为在后台线程(例如,由SwingWorker提供的后台线程)中进行处理,然后GUI会变得更加敏感。 有关详细信息,请查看本教程:Swing中的并发 如果尽管有此建议,您仍然遇到问题,那么您可能将不得不发布一些有问题的代码。最好的办法是创建一个可重现该问题的小型可运行应用程序SSCCE。 ¡Tengas suerte!     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。