仅当文本区域不为空并获取所选索引时,才在文本区域中创建右键单击弹出菜单

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(...) 方法,它会为您提供鼠标单击所在的行。然后就可以从列表中获取对象了。