2010-07-07 78 views
2

我想在JMenuItem中显示一些信息。数据格式是这样的:Swing是否有类似于HTML <select>标签的组件?

1-1|Menu Name1 

1-2|Menu Name2 

我的问题是,当我创建JMenuItem它显示整个键值对。我想知道在Swing中是否存在类似于HTML的类似行为

<SELECT> 
<OPTION value="1-1">Menu Name1</OPTION> 
<OPTION value="1-2">Menu Name2</OPTION> 
</SELECT> 

...其中用户从未看到密钥,只能看到值。

我不熟悉Swing,所以如果有人知道像使用JMenuItems风格的HTML类似的行为,请分享。

在此先感谢。

回答

2

如果我理解正确的话,你需要设置不同的访问属性为JMenuItem,这样当该菜单项,用户点击,你有一个相应的值可以读取,可用于其他目的。

为此,请尝试setActionCommand API;这样,您可以将任何字符串与菜单项相关联,并且在事件处理代码中,可以在生成该事件的源对象上执行getActionCommand。

注:你有0%的接受率。这意味着你不接受你发布的问题的任何答案。不要指望太多的人回答你的问题。

+0

是的,我认为这会奏效。我会试一试。谢谢。 – Marquinio 2010-07-07 20:45:01

0

如果您将Key-Value Pair包装在单个对象中,则可以将这些对象传递给JMenu。为了确保在这个菜单中只显示一部分对象信息(在这个例子中是值),你可能要“破解”JMenuItem的渲染(通过派生自己的类并使用paintComponent() ,我猜),或者只是改变传递对象的toString()方法(如果可行的话,这可能会导致一些问题,这取决于这些对象的进一步使用)只返回应该显示的值。

相关问题