仅当文本区域不为空并获取所选索引时,才在文本区域中创建右键单击弹出菜单
Create a right click popup menu in a text area only if it is not empty and getting the selected index
我看到了 How do I create a right click context menu in Java Swing? 中回答的问题
并了解如何创建菜单。
但是,当我将其与文本区域相关联时,无论上面是否写有任何内容,它始终显示菜单。
我使用文本区域来显示我从特定 class(我将其保存在 ArrayList 中)创建了多少个对象。我需要的是一个菜单,当单击特定的文本行时,它可以具有 ArrayList 中对象的索引,并使用该菜单 Edit/Remove ArrayList 中的指定对象。
文本区域是否可行,还是我应该使用不同类型的显示组件?
例如:
文本区:
对象 1.
对象 2.
对象 3.
当我 select 时,例如,右键单击对象 1,它会显示带有“编辑”和“删除”的菜单。但是当我不 select 任何一个时,菜单不显示。
当它显示时,它可以访问对象的索引(对象 1 -> 索引 0,对象 2 -> 索引 1 等)
非常感谢您的帮助,
内卡斯
I use the text area to reveal how many objects I have created from a specific class
不要使用 JTextArea。
相反,我建议您应该使用 JList
。阅读有关 How to Use Lists 的 Swing 教程部分,了解更多信息和示例。
JList
有一个 locationToIndex(...)
方法,它会为您提供鼠标单击所在的行。然后就可以从列表中获取对象了。
我看到了 How do I create a right click context menu in Java Swing? 中回答的问题 并了解如何创建菜单。 但是,当我将其与文本区域相关联时,无论上面是否写有任何内容,它始终显示菜单。
我使用文本区域来显示我从特定 class(我将其保存在 ArrayList 中)创建了多少个对象。我需要的是一个菜单,当单击特定的文本行时,它可以具有 ArrayList 中对象的索引,并使用该菜单 Edit/Remove ArrayList 中的指定对象。 文本区域是否可行,还是我应该使用不同类型的显示组件?
例如:
文本区:
对象 1.
对象 2.
对象 3.
当我 select 时,例如,右键单击对象 1,它会显示带有“编辑”和“删除”的菜单。但是当我不 select 任何一个时,菜单不显示。 当它显示时,它可以访问对象的索引(对象 1 -> 索引 0,对象 2 -> 索引 1 等)
非常感谢您的帮助, 内卡斯
I use the text area to reveal how many objects I have created from a specific class
不要使用 JTextArea。
相反,我建议您应该使用 JList
。阅读有关 How to Use Lists 的 Swing 教程部分,了解更多信息和示例。
JList
有一个 locationToIndex(...)
方法,它会为您提供鼠标单击所在的行。然后就可以从列表中获取对象了。