Peter: Popup soll nur im Editor geöffnet werden!

Beitrag lesen

Hallo Java-Genies,

ich hab mir einen kleinen Editor mit einen kleinen Menüleiste geschrieben. Nun soll, wenn im Editor (und nur im Editor) mit der rechten Maustaste geklicked wird, ein Popupfenster sich öffnen.
Jedoch funktioniert das ganze nicht. Hier mein Quellcode:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class HalloSwing extends JFrame{
  public HalloSwing(){
    super("Editor-Test");

ActionListener listenerExit = new ActionListener(){
      public void actionPerformed(ActionEvent e){
   System.exit(0);
      }
    };

JMenuBar menuBar = new JMenuBar();
    setJMenuBar(menuBar);
    
    JMenu menu = new JMenu("Programm");
    menu.setMnemonic('p');
    
    JMenuItem itemExit = new JMenuItem("Beenden");
    itemExit.setMnemonic('b');
    itemExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, Event.ALT_MASK));
    itemExit.addActionListener(listenerExit);

menu.add(itemExit);
    menuBar.add(menu);

JTextPane textEditor = new JTextPane();
    textEditor.setText("Hallo Welt!");
    getContentPane().add(textEditor);

final JPopupMenu popup = new JPopupMenu();

JMenuItem itemClick = new JMenuItem("Klick mich!");
    itemClick.setMnemonic('k');
    itemClick.addActionListener(listenerExit);
    popup.add(itemClick);

itemExit = new JMenuItem("Beenden");
    itemExit.setMnemonic('b');
    itemExit.addActionListener(listenerExit);
    popup.add(itemExit);

getContentPane().addMouseListener(new MouseAdapter(){
      public void mousePressed(MouseEvent e){
   doPopup(e);
      }

public void mouseReleased(MouseEvent e){
   doPopup(e);
      }

public void mouseClicked(MouseEvent e){
   doPopup(e);
      }

private void doPopup(MouseEvent e){
   if(e.isPopupTrigger()) popup.show(e.getComponent(), e.getX(), e.getY());
      }
    });
  }
  
  public static void main(String args[]){
    JFrame frame = new HalloSwing();
    frame.addWindowListener(new WindowAdapter(){
      public void windowClosing(WindowEvent e){
        System.exit(0);
      }
    });    
    frame.pack();
    frame.setSize(700,500);
    frame.setVisible(true);
  }
}

Danke für eure Hilfe!
Grüße Peter