2
我有一个扩展JFrame的Gui类。顶部有一个JMenuBar,其余的由一个大的JTextField组成。MouseListener - 无法处理JTextArea
我已经实现了这个类的mouseListener,问题在于它只能在JMenuBar而不是JTextArea上单击时进行监听。所以我的问题是如何让MouseListener的反应鼠标点击了GUI类的JTextArea
继承人snappshot(构造函数)
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);
}
为什么'MouseListener'会对'JFrame'(你注册它的地方)出现的鼠标事件做出反应?可能[如何编写鼠标监听程序](http://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html)可以提供帮助 – MadProgrammer
至少有两种可能的解决方案来解决您的问题,但是您希望使用将取决于你试图实现什么 – MadProgrammer
@MadProgrammer - 哎呀,是的,你是对的。我怎么会想念那个? – java