这是我的主要课程:
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) {
}
}
当我点击buttonneẅ时没有任何反应。我迷路了!
答案 0 :(得分:9)
解决方案:
答案 1 :(得分:8)
阅读How to Use Menu Items上的Swing教程。您不应该使用MouseListener。您应该将ActionListener添加到菜单项。
本教程还有关于How to Write an Action Listener
和How to Write a Mouse Listener
的部分。
public class buttonnew extends JMenuItem implements MouseListener{
同样,类名应以大写字母开头,而不是小写字符。
buttonnew.setVisible(true);
默认情况下,Swing组件(顶级窗口除外)是可见的,上面的代码是不必要的。
MainFrame frame = new MainFrame("Word Processor", 10000, 10000);
不要对帧的大小进行硬编码。我的屏幕只有1376 x 768.您应该使用:
frame.pack();
或全屏显示,您可以使用:
frame.setExtendedState(...);
在将所有组件添加到框架之前,请勿使框架可见。
setTitle(name);
setSize(x, y);
setVisible(true);
setJMenuBar(menubar);