Я видел ответ на вопрос How do I create a right click context menu in Java Swing? и видел, как я могу создать меню. Однако, когда я связываю его с текстовой областью, не имеет значения, есть ли на нем что-либо написанное или нет, оно всегда отображает меню.Создайте контекстное меню правой кнопки мыши в текстовой области только в том случае, если оно не пустое и получение выбранного индекса
Я использую текстовую область, чтобы показать, сколько объектов я создал из определенного класса (который я сохраняю в ArrayList). Что мне нужно, это меню, которое при нажатии на определенную строку текста может иметь индекс объекта в ArrayList и использовать это меню для редактирования/удаления указанного объекта из ArrayList. Возможно ли это с помощью текстовой области или я должен использовать другой вид компонента отображения?
В качестве примера:
Текст Площадь:
Объект 1.
Объект 2.
Объект 3.
Когда я выбираю, например, объект 1 с щелчок правой кнопкой мыши, он отображает меню с помощью «Редактирование и удаление». Но когда я не выбираю ни одного из них, меню не отображается. И когда он показывает, он может получить доступ к индексу спосо объекта (объект 1 -> индекс 0, объект 2 -> индекс 1 и т.д.)
Большое спасибо за вашу помощь, Nhekas
Это не сложно. Попробуйте, и если у вас возникнет проблема, спросите нас. –
Я попытался, и то, что я не могу сделать, это присоединиться к местоположению, которое я получаю от мыши (MouseEvent.getPoint()), и какой строке он соответствует в JTextArea, главным образом потому, что, поскольку он находится внутри scrollPane, когда я прокручиваю вниз, getPoint() не изменится, если я нажму на то же место. – Nhekas
Посмотрите на метод getViewPosition JScrollPane. – FredK