【问题标题】:How to store CORBA objects in DefaultMutableTreeNode (Java Swing)?如何在 DefaultMutableTreeNode (Java Swing) 中存储 CORBA 对象?
【发布时间】:2013-01-20 16:50:55
【问题描述】:

我知道前段时间我问过almost the same question,但是我遇到了一个非常相似的新问题-但是你们当时给我的解决方案现在不起作用:(

我有一个 IDL 接口:

interface User {
    string toString();
    //..
};

interface Group {
    typedef sequence<User> Users;
    Users getUsers();

};

当我将它翻译成 C++ 时,我得到了这样的结果:

// ...
Group::Users* GroupImpl::getUsers()
{
    // ..return sequence of 'User'-objects
}

在客户端(用 Java 编写)我想向我的用户展示。我做这样的事情:

public void showAllUsers() {
    User[] users = interface_obj.getUsers();
    DefaultMutableTreeNode root = new DefaultMutableTreeNode("Main Node");
    for(int i=0; i<users.length;i++) {
        User u = users[i];
        DefaultMutableTreeNode node = new DefaultMutableTreeNode(
            ((UserView)u).getUser());
        root.add(node);
    }

    treeForumReview.setModel(new DefaultTreeModel(root));
}

当然,我有课:

public class UserView {

        private final User f;

        private UserView(User f) {
            this.f = f;
        }

        public Forum getUser() {
            return this.f;
        }

        @Override
        public String toString() {
            String ret = null;
            ret = this.f.getName();
            return ret;
        }
    }

但是在运行所有这些时,我会收到一条消息:

当我像写的那样执行此操作时,我只看到我的用户对象的 IOR:

IOR :0123405948239481293812312903891208320131293812381023
IOR: 0092930912617819919191818173666288810010199181919919

等等……

如何做到这一点,在DefaultMutableTreeNode 中看到他们的toString() 表示?我不想这样做:

model.addElement(users[i].toString());

这不是重点。当我使用 RMI 而不是 CORBA 时,model.addElement(users[i]); 正是我所需要的,因为我看到了用户字符串表示。但我需要使用 CORBA 并存储在 DefaultMutableTreeNode corba-user-objects 中,而不是字符串。请帮忙。

【问题讨论】:

    标签: java string swing corba


    【解决方案1】:

    解决了:

                if (users != null) {
                    for (User f : users) {
                        UserView fv = new UserView(f);
                        DefaultMutableTreeNode node = new DefaultMutableTreeNode(fv);
                        root.add(node);
                    }
                }
    

    【讨论】:

      猜你喜欢
      • 2012-09-28
      • 2020-03-29
      • 2011-08-11
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 2018-07-02
      • 2021-08-24
      相关资源
      最近更新 更多