JTabbedPane:显示所选选项卡之前执行的操作

2024-04-19

当其中一个面板出现在JTabbedPane单击后,我需要在开始时执行一些操作。举例来说,我需要检查用户名和密码。仅当这些匹配时,才需要执行特定的面板操作。你能建议一些方法吗?


不确定我完全理解你的问题,但我会做类似的事情:

  • 将 ChangeListener 添加到 JTabbedPane 以侦听第一个选项卡单击。
  • 当发生 ChangeEvent 时,使用 SwingWorker 在后台线程上执行登录。
  • 如果登录成功,请在事件调度线程上执行所需的 UI 操作。

例如:

    tabbedPane.addChangeListener(new ChangeListener() {
    private boolean init;

    public void stateChanged(ChangeEvent e) {
        if (!init) {                                        
            init = true;

            new SwingWorker<Boolean, Void>() {
                @Override
                protected void done() {
                    try {
                        boolean loggedIn = get();

                        if (loggedIn) {
                            // Success so perform tab operations.
                        }
                    } catch (InterruptedException e1) {
                        e1.printStackTrace(); // Handle this.
                    } catch (ExecutionException e1) {
                        e1.printStackTrace(); // Handle this.
                    }
                }

                protected Boolean doInBackground() throws Exception {
                    // Perform login on background thread.  Return true if successful.
                    return true;
                }
            }.execute();
        }
        }
    });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JTabbedPane:显示所选选项卡之前执行的操作 的相关文章

随机推荐