我想在JMenuItem中显示一些信息。数据格式如下:
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那样的行为请分享。
提前感谢。
答案 0 :(得分:3)
答案 1 :(得分:2)
如果我理解正确,您需要为JMenuItem
设置不同的可访问属性,以便当用户单击菜单项时,您有一个相应的值可供读取,可用于其他目的。
为此,请尝试setActionCommand
API;这样,您可以将任何字符串与菜单项相关联,并且在事件处理代码中,您可以对生成事件的源对象执行getActionCommand。
注意:您的接受率为0%。这意味着您不接受您发布的问题的任何答案。不要指望有太多人回答你的问题。
答案 2 :(得分:0)
如果将键值对包装在单个对象中,则可以将这些对象传递给JMenu。为了确保在此菜单中只显示一部分对象信息(在本例中为值),您可能要“破解”JMenuItem的渲染(通过派生自己的类并弄乱paintComponent()) ,我猜),或者只是更改传递对象的toString()方法(如果可行,这可能会导致一些问题,具体取决于对这些对象的进一步使用),只返回应该显示的值。