Cursor unsichtbar, wenn Kontextmenü aufgerufen wird

Duckemai

Mitglied
Hallo zusammen,

ich habe ein JPopupMenu erstellt. Darin befinden sich die Klassiker cut, copy und paste.
Dieses Menü nutze ich in einem JTextArea. Funktioniert alles auch prima.

Problem ist: Sobald ich das Kontextmenü aufrufe, dann wird der blinkende Cursor (Caret) immer unsichtbar.
Das erschwert beim "Einfügen" die Übersichtlichkeit, wo der gespeicherte String tatsächlich
hinkopiert wird. (Übrigens: Wenn ich das Kontextmenü meines Notepad Windows aufrufen, dann wird der Cursor mal angezeigt, mal nicht.)
Hab schon sowas erfolglos probiert:
Code:
public MouseListener dListener = new MouseAdapter(){
        public void mouseReleased (MouseEvent Ereignis){
            if (Ereignis.isPopupTrigger()){
                detailfeld.getCaret().setVisible(true);
                boolean test= detailfeld.getCaret().isVisible();//gibt immer true zurück
                detailfeld.requestFocus();
...
detailfeld.getCaret().isVisible() gibt immer 'true' zurück. 😕

Jemand eine Idee, wie ich den Cursor sichtbar halten könnte?
 
'n Abend,
weil ich genau dort das Kontextmenü aufrufe. Das ist die letzte Station, wo ich noch Einfluß nehmen könnte. Daher habe ich versucht im MouseListener vor und nach dem Aufruf:
Code:
popup.show (Ereignis.getComponent(), Ereignis.getX(),Ereignis.getY());
                detailfeld.getCaret().setVisible(true);
wieder Macht über den Cursor zu bekommen. Mit Deinem vorgeschlagenem CaretListener ist es mir leider auch nicht gelungen.
 
Und weißt Du, was noch frustrierender ist? Wenn ich einen Rechtsklick auf den Rahmen der Applikation mache, dann bleibt der blinkende Cursor erhalten:
Unbenannt.PNG Unbenannt.PNG
 
Moin, da hab ich so vieles ausprobiert...und ja, war ein Focusproblem.
Code:
public MouseListener dListener = new MouseAdapter(){
       public void mouseReleased (MouseEvent Ereignis){
           if (Ereignis.isPopupTrigger()){
               popup.show (Ereignis.getComponent(), Ereignis.getX(),Ereignis.getY());
//Request muss sich nach popup befinden, ansonsten wird der blinkende Caret neben Kontextmenü nicht angezeigt
               detailfeld.requestFocusInWindow();
           }
         }
       };

Danke!
 

Zurück
Oben