use*_*510 2 java mouse swing jmenuitem mouselistener
这是我的主要课程:
import javax.swing.*;
public class WordProcessor {
public static void main(String[] args) {
MainFrame frame = new MainFrame("Word Processor", 10000, 10000);
}
}
Run Code Online (Sandbox Code Playgroud)
我还有另外两个班
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);
}
}
Run Code Online (Sandbox Code Playgroud)
最后
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) {
}
}
Run Code Online (Sandbox Code Playgroud)
当我点击buttonneẅ时没有任何反应.我迷路了!
解决方案:
阅读有关如何使用菜单项的Swing教程.您不应该使用MouseListener.您应该将ActionListener添加到菜单项.
该教程还有关于How to Write an Action Listener和的部分How to Write a Mouse Listener.
public class buttonnew extends JMenuItem implements MouseListener{
Run Code Online (Sandbox Code Playgroud)
类名也应以大写字符开头,而不是小写字符.
buttonnew.setVisible(true);
Run Code Online (Sandbox Code Playgroud)
默认情况下,Swing组件(顶级窗口除外)是可见的,上面的代码是不必要的.
MainFrame frame = new MainFrame("Word Processor", 10000, 10000);
Run Code Online (Sandbox Code Playgroud)
不要硬编码框架的大小.我的屏幕只有1376 x 768.你应该使用:
frame.pack();
Run Code Online (Sandbox Code Playgroud)
或者全屏你可以使用:
frame.setExtendedState(...);
Run Code Online (Sandbox Code Playgroud)
在将所有组件添加到框架之前,请勿使框架可见.
setTitle(name);
setSize(x, y);
setVisible(true);
setJMenuBar(menubar);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1713 次 |
| 最近记录: |