【发布时间】:2012-09-28 00:16:33
【问题描述】:
我有这样的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();
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。
当我像我写的那样做时,我只看到我的用户对象的 IOR:
IOR :0123405948239481293812312903891208320131293812381023
IOR: 0092930912617819919191818173666288810010199181919919
等等……
如何做到这一点,看看他们的 toString(); DefaultListModel 中的表示?我不想这样做:
model.addElement(users[i].toString());
这不是重点。当我使用 RMI 而不是 CORBA 时,model.addElement(users[i]); 正是我所需要的,因为我看到了用户字符串表示。
但我需要使用 CORBA 并存储在 DefaultListModel corba-user-objects 中,而不是字符串。请帮忙。
【问题讨论】:
标签: java c++ swing corba defaultlistmodel