在Netbeans平台中打开窗口时,我在哪里放置我的数据库代码?

时间:2013-12-10 11:01:25

标签: java netbeans netbeans-platform

我有一个Netbeans平台应用程序。打开主框架后,我想填充一个GUI表,其中包含从数据库中提取的元素。

拥有此代码的最佳位置在哪里?我已经尝试了 componentOpened()方法,但我得到了一个线程死锁。即使使用 invokeLater(),我也会遇到线程问题。

    @Override
public void componentOpened() {

    SwingUtilities.invokeLater(new Runnable() {

        @Override
        public void run() {

            List<UserBO> al = UserDelegate.getInstance().getUsers();

            for (UserBO u : al) {

                System.out.println("User " + u);
            }
        }
    });

    // TODO add custom code on component opening
}

上面的代码总是导致线程死锁。我不确定componentOpened()是否正确的方法是使用此代码。

1 个答案:

答案 0 :(得分:0)

解。将DB读取代码放在组件的构造函数中(即“Top Component”)。然后使用Netbeans RequestProcessor。

    public EditorTopComponent() {
    initComponents();
    setName(Bundle.CTL_EditorTopComponent());
    setToolTipText(Bundle.HINT_EditorTopComponent());

    RequestProcessor.getDefault().post(new Runnable () {
        @Override
        public void run() {


            List<UserBO> al = UserDelegate.getInstance().getUsers();

            System.out.println("Users dude ");

            for (UserBO u : al) {
                System.out.println("User " + u);
            }
        }
    });
}

现在可以使用