java - 如何在 DefaultMutableTreeNode (Java Swing) 中存储 CORBA 对象?

标签 java string swing corba

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

我有一个 IDL 接口(interface):

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;
        }
    }

但是当运行这一切时,我收到一条消息:

Error message

当我像我写的那样这样做时,我只看到我的用户对象的 IOR:

IOR :0123405948239481293812312903891208320131293812381023
IOR: 0092930912617819919191818173666288810010199181919919

等等...

如何做到这一点,才能在 DefaultMutableTreeNode 中查看它们的 toString() 表示形式?我不想这样做:

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

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

最佳答案

解决了:

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

关于java - 如何在 DefaultMutableTreeNode (Java Swing) 中存储 CORBA 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14426779/

相关文章:

c# - 有效确定数组中的哪些字符串是其他字符串的子字符串?

python - 在一些字符后替换字符串

java - 在java.awt.AWTEventMulticaster.mouseExited(AWTEventMulticaster.java :309)

java - 如何在 JTextfied 中只接受 0 到 8 之间的数值?

java - 找不到 URI 404 Spring Boot

java - 如何在 java 中的 String 变量中获取异常消息?

javascript - lastIndexOf 的默认值是多少?

java - 在一框中添加多个不同尺寸的面板

java - 使用联接将表 2 和表 3 中的数据添加到表 1 时出现 MySQL 查询问题

java - 如何模拟<嵌套:root> from Struts 1 in Struts 2?