gpt4 book ai didi

java - 为什么 MouseListener 不起作用?

转载 作者:行者123 更新时间:2023-12-02 05:30:26 27 4
gpt4 key购买 nike

这是我的主要类(class):

import javax.swing.*;

public class WordProcessor {

public static void main(String[] args) {
MainFrame frame = new MainFrame("Word Processor", 10000, 10000);
}
}

我还有另外两门课

import javax.swing.*;

public class MainFrame extends JFrame {

JMenuBar menubar = new JMenuBar();

public MainFrame(String name, int x, int y) {
setTitle(name);
setSize(x, y);
setVisible(true);
setJMenuBar(menubar);
//creates file menu and adds to menubar
//TODO populate with JMenuItems
JMenu filemenu = new JMenu("file");
filemenu.setVisible(true);
menubar.add(filemenu);

buttonnew buttonnew = new buttonnew("new");
buttonnew.setVisible(true);
filemenu.add(buttonnew);
buttonnew.addMouseListener(buttonnew);
}
}

最后

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

public class buttonnew extends JMenuItem implements MouseListener{

buttonnew(String s) {
super();
super.setText(s);
}

public void mouseClicked(MouseEvent e){
System.out.println("hey-o");
}

@Override
public void mouseExited(MouseEvent e) {
}

public void mouseEntered(MouseEvent e) {
}

public void mouseReleased(MouseEvent e) {
}

public void mousePressed(MouseEvent e) {
}
}

当我点击按钮neẅ时没有任何反应。我迷失了!

最佳答案

解决方案:

  1. 不要将 MouseListener 与 JMenuItem 一起使用!他们应该使用 ActionListener。
  2. 使用新工具时请阅读教程。 Swing 菜单教程已经告诉您所有这些以及如何正确使用菜单。
  3. 此外,最好不要让 GUI 类实现监听器接口(interface),因为您会强制一个类执行过多的操作,从而违反 Cohesion OOP 规则。

关于java - 为什么 MouseListener 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16995790/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com