Ich habe die Frage in How do I create a right click context menu in Java Swing? beantwortet gesehen und gesehen, wie ich ein Menü erstellen kann. Wenn ich es jedoch mit dem Textbereich verknüpfe, ist es egal, ob etwas darauf geschrieben ist oder nicht, es zeigt immer das Menü an.Erstellen Sie ein Rechtsklick-Popup-Menü in einem Textbereich nur, wenn es nicht leer ist und den ausgewählten Index
Ich benutze den Textbereich, um anzuzeigen, wie viele Objekte ich aus einer bestimmten Klasse (die ich in einer ArrayList speichern) erstellt habe. Was ich brauche, ist ein Menü, das beim Klicken auf eine bestimmte Textzeile den Index des Objekts in der ArrayList haben und dieses Menü verwenden kann, um das angegebene Objekt von der ArrayList zu bearbeiten/zu entfernen. Ist das mit einem Textbereich möglich oder sollte ich eine andere Art von Anzeigekomponente verwenden?
Als Beispiel:
Textbereich:
Objekt 1.
Objekt 2.
Objekt 3.
Wenn ich wählen, zum Beispiel, Objekt 1 mit ein Rechtsklick, es zeigt das Menü mit Bearbeiten und Entfernen. Aber wenn ich keine von ihnen auswähle, wird das Menü nicht angezeigt. Und wenn es zeigt, kann es den Index od das Objekt zuzugreifen (Objekt 1 -> Index 0, Objekt 2 -> Index 1 usw.)
Vielen Dank für Ihre Hilfe, Nhekas
Es ist nicht schwer zu tun. Probieren Sie es aus und wenn Sie ein Problem haben, fragen Sie uns. –
Ich habe es versucht, und was ich nicht tun kann, ist der Ort, den ich bekomme von der Maus (MouseEvent.getPoint()) und welche Zeile entspricht es in der JTextArea, vor allem weil, da es in einem ScrollPane ist, wenn ich nach unten scrollen, Der getPoint() ändert sich nicht, wenn ich auf denselben Ort klicke. – Nhekas
Sehen Sie sich die getViewPosition-Methode von JScrollPane an. – FredK