首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java,Corba -如何在DefaultListModel中存储Corba对象?

Java,Corba -如何在DefaultListModel中存储Corba对象?
EN

Stack Overflow用户
提问于 2012-10-07 15:12:46
回答 2查看 242关注 0票数 1

我有这样的IDL接口:

代码语言:javascript
复制
interface User
{
    string toString();
    //..
};

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

};

当我把它翻译成C++时,我得到了这样的东西:

代码语言:javascript
复制
// ...
Group::Users* GroupImpl::getUsers()
{
    // ..return sequence of 'User'-objects
}

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

代码语言:javascript
复制
public void showAllUsers() 
{
    User[] users = interface_obj.getUsers();
    if(users.length != 0)
    {
        DefaultListModel model = new DefaultListModel();
        for(int i=0; i<users.length; i++)
            model.addElement(users[i]);
        this.usersList.setModel(model);
    }
}

this.usersList是JList

当我像我写的那样这样做时,我只看到我的用户的IORs object:

代码语言:javascript
复制
IOR :0123405948239481293812312903891208320131293812381023
IOR: 0092930912617819919191818173666288810010199181919919

等等..。

如何通过这种方式查看他们的toString();在DefaultListModel中表示?我不想这样做:

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-07 15:21:37

一种方法是创建一个UserView类,将其实例放入列表模型中:

代码语言:javascript
复制
public class UserView {

    private final User corbaUser;

    public UserView(User corbaUser) {
        this.corbaUser = corbaUser
    }

    @Override
    public String toString() {
       String ret = null;
       // construct the string as you want here
       return ret;
    }
}

编辑:

正如JB所指出的,请小心您在toString()中放置的代码,因为每次需要显示列表时都会调用它--或者显示最新的数据可能正是您想要的。

票数 1
EN

Stack Overflow用户

发布于 2012-10-07 15:19:50

我猜想存根的toString()方法实际上并不调用远程CORBA对象的toString()方法。尝试使用另一个方法名(如getName()),并使用调用此方法的自定义呈现器。

也就是说,将用户建模为远程CORBA对象真的是个好主意吗?这将导致大量或远程方法调用,只是为了显示用户的名称,而该方法调用基本上不在您的控制范围内,因为Swing组件将生成这些调用。你不应该用DTO代替吗?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12769997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档