MouseListener - 不在JTextArea上工作

时间:2015-04-15 07:36:19

标签: java swing jtextarea mouselistener

我有一个扩展JFrame的Gui-class。顶部有一个JMenuBar,其余部分由一个大的JTextField组成。

我已经为这个类实现了一个mouseListener,问题是它在点击JMenuBar而不是JTextArea时似乎只是监听。所以我的问题是如何让mouseListener对鼠标点击JTextArea

作出反应

继承人Gui-class(构造函数)的快照

 public class Gui extends JFrame implements ActionListener, MouseListener {

private JMenu fileMenu;
private JTextArea textArea;
private JFileChooser chooser;

public static void main(String[] args) {

    new Gui().setVisible(true);

}

public Gui() {

    setSize(600, 600);
    Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
    setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);

    createFileMenu();

    JMenuBar menuBar = new JMenuBar();
    setJMenuBar(menuBar);
    menuBar.add(fileMenu);

    textArea = new JTextArea();

    JScrollPane scroll = new JScrollPane (textArea, 
    JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

    Container contentPane = getContentPane();
    contentPane.add(scroll);

    chooser = new JFileChooser();

     addMouseListener(this);

    setDefaultCloseOperation(EXIT_ON_CLOSE);

}

Screenshot

1 个答案:

答案 0 :(得分:3)

将鼠标侦听器添加到textarea而不是窗口。

 textArea = new JTextArea();
 textArea.addMouseListener(this);