菜单栏怎么添加监听器代码 java栈事件监听 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看下面的测试代码,点击 about 的menu 下面的 about author 只有 jmenu没有监听,只有子菜单有监听,jmenu如果能有监听就不是menu了,是 工具栏Jtool了package com.wanju.project001.zonghe.test;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.event.ListSelectionEvent;import javax.swing.event.ListSelectionListener;public class MyJMenu { JFrame myFrame; JMenuBar menubar; JMenu file, edit, view, viewSub, about; JMenuItem newFile, openFile, saveFile, exit, copy, pause, full, part, viewSub_full, viewSub_part, author, help; public MyJMenu() { myFrame = new JFrame("Chevi.C J Menu"); myFrame.setSize(200, 300); myFrame.setLocation(400, 400); myFrame.setVisible(true); // 利用事件监听关闭. myFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); menubar = getMenu(); // 注意,是setJMenuBar(),二不是awt的setMenuBar()...!!!! myFrame.setJMenuBar(menubar); } // 菜单设置 public JMenuBar getMenu() { menubar = new JMenuBar(); file = new JMenu("file"); edit = new JMenu("edit"); view = new JMenu("view"); viewSub = new JMenu("viewSon"); about = new JMenu("about"); newFile = new JMenuItem("new a file.."); openFile = new JMenuItem("open a file.."); saveFile = new JMenuItem("save.."); exit = new JMenuItem("exit"); file.add(newFile); file.add(openFile); file.add(saveFile); // 添加分割线,和awt中的不同,awt中的菜单项可以用"-"表示分割线. file.addSeparator(); file.add(exit); menubar.add(file); copy = new JMenuItem("copy"); pause = new JMenuItem("pause"); edit.add(copy); edit.add(pause); menubar.add(edit); full = new JMenuItem("full screen"); part = new JMenuItem("window style"); view.add(full); view.add(part); viewSub_full = new JMenuItem("second full"); viewSub_part = new JMenuItem("second part"); viewSub.add(viewSub_full); viewSub.add(viewSub_part); // Menu add Menu...... view.add(viewSub); menubar.add(view); author = new JMenuItem("about Author"); help = new JMenuItem("help"); about.add(author); about.add(help); menubar.add(about); Monitor m = new Monitor("hello"); author.addActionListener(m); return menubar; } public static void main(String[] args) // ~!@ { new MyJMenu(); }}class Monitor implements ActionListener, ListSelectionListener { private String s1; public Monitor(String s) { s1 = s; } public void valueChanged(ListSelectionEvent e) { System.out.println("sdfa"); } public void actionPerformed(ActionEvent e) { try { System.out.println("asdfasd"); BufferedReader br = new BufferedReader(new FileReader( "D:\\img\\a.txt")); // 读取字符流 String s = null; while ((s = br.readLine()) != null) { // 一行一行的读取br的文件 s1 = s1 + s + "\n"; } br.close(); System.out.println(s1); } catch (IOException e1) { e1.printStackTrace(); } }} 为何不能实现这个功能?给每个MenuItem加事件就可以了。就算是同一个监听器对象,可以用事件类Event对象的getTarget()方法获得是哪个菜单被点击. JTextArea 添加监听的问题 在深度为5的二叉树中,度为2的结点最多为?为什么是15? 一个可以独立运行的Java应用程序( ) ??(选择题) java类在Doc命令下的问题!!! 很奇怪的问题,我得OS是XP,JDK是1.5,注册RMI服务总是有问题 一个关于socket的问题 hs_err_pid1272.log文件 关于多窗口关闭的问题,请帮忙!!! Graphic2D画了一个矩形, 如何使用斜线填充? 高手请进,求解代码片段. 怎么根据Comparable方法中的compareTo方法的返回值的正负 判断升序 还是 降序? 请教一个对象序列化问题
package com.wanju.project001.zonghe.test;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;public class MyJMenu {
JFrame myFrame;
JMenuBar menubar;
JMenu file, edit, view, viewSub, about;
JMenuItem newFile, openFile, saveFile, exit, copy, pause, full, part,
viewSub_full, viewSub_part, author, help; public MyJMenu() {
myFrame = new JFrame("Chevi.C J Menu");
myFrame.setSize(200, 300);
myFrame.setLocation(400, 400);
myFrame.setVisible(true); // 利用事件监听关闭.
myFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
menubar = getMenu();
// 注意,是setJMenuBar(),二不是awt的setMenuBar()...!!!!
myFrame.setJMenuBar(menubar);
} // 菜单设置
public JMenuBar getMenu() {
menubar = new JMenuBar(); file = new JMenu("file");
edit = new JMenu("edit");
view = new JMenu("view");
viewSub = new JMenu("viewSon");
about = new JMenu("about");
newFile = new JMenuItem("new a file..");
openFile = new JMenuItem("open a file..");
saveFile = new JMenuItem("save..");
exit = new JMenuItem("exit");
file.add(newFile);
file.add(openFile);
file.add(saveFile);
// 添加分割线,和awt中的不同,awt中的菜单项可以用"-"表示分割线.
file.addSeparator();
file.add(exit); menubar.add(file); copy = new JMenuItem("copy");
pause = new JMenuItem("pause");
edit.add(copy);
edit.add(pause);
menubar.add(edit);
full = new JMenuItem("full screen");
part = new JMenuItem("window style");
view.add(full);
view.add(part);
viewSub_full = new JMenuItem("second full");
viewSub_part = new JMenuItem("second part");
viewSub.add(viewSub_full);
viewSub.add(viewSub_part);
// Menu add Menu......
view.add(viewSub);
menubar.add(view);
author = new JMenuItem("about Author");
help = new JMenuItem("help");
about.add(author);
about.add(help);
menubar.add(about);
Monitor m = new Monitor("hello");
author.addActionListener(m);
return menubar; } public static void main(String[] args) // ~!@
{
new MyJMenu();
}
}class Monitor implements ActionListener, ListSelectionListener {
private String s1; public Monitor(String s) {
s1 = s;
} public void valueChanged(ListSelectionEvent e) {
System.out.println("sdfa");
} public void actionPerformed(ActionEvent e) {
try {
System.out.println("asdfasd");
BufferedReader br = new BufferedReader(new FileReader(
"D:\\img\\a.txt")); // 读取字符流
String s = null;
while ((s = br.readLine()) != null) { // 一行一行的读取br的文件
s1 = s1 + s + "\n";
}
br.close();
System.out.println(s1);
} catch (IOException e1) {
e1.printStackTrace();
} }
}