日期:2014-05-20  浏览次数:20747 次

监听不起作用,神马情况?
为什么监听的时候不起?

zd.add(zdadd);
zd.add(zdcx);
gy.add(gycx);

setJMenuBar(mb);
setContentPane(mp);
setVisible(true);

  Dimension scr=Toolkit.getDefaultToolkit().getScreenSize();
  Dimension frm = this.getSize();
  setLocation((int)(scr.getWidth()-frm.getWidth())/2,
      (int)(scr.getHeight()-frm.getHeight())/2-40);
  

}
  public static void main(String[] args) {
MainFrame t = new MainFrame();
t.mainFrame();
}

@Override
public void actionPerformed(ActionEvent ae) {
// TODO Auto-generated method stub
if(ae.getSource()=="用户查询")
{

}if (ae.getSource()=="添加用户") {

}if (ae.getSource()=="收费标准") {

}if (ae.getSource()=="最终收费") {

}
if (ae.getSource()=="投诉查看") {

}if (ae.getSource()=="添加投诉") {

}if (ae.getSource()=="公用信息查询") {

}if (ae.getSource()=="添加制度") {

}if (ae.getSource()=="帮助") {
//JOptionPane.showMessageDialog(this, "看使用说明!");
System.out.println("帮助++");

}

}

}

------解决方案--------------------
引用:
Quote: 引用:

你是要监听哪个?


例如:监听  用户查询

方法1:
if (ae.getActionCommand().toString() == "用户查询")
{
System.out.println("aa");
}

方法2:
if (ae.getSource() instanceof JMenuItem)//判断事件源是否为菜单项 
{
String ItemName = ae.getActionCommand();
if (ItemName.equals("用户查询"))
{
System.out.println("yonghu");
}
}

如果要监听 帮助 ,帮助 是JMenu,是菜单,这个我没监听过;
------解决方案--------------------
package test;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;

import java.awt.Button;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Rectangle2D;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;
import javax.swing.SwingConstants;
import javax.xml.ws.handler.MessageContext.Scope;

public class MainFrame extends JFrame implements ActionListener {
Image img;

PopupMenu popm = new PopupMenu();
private JTextArea ta;
JMenuItem help=new JMenuItem("帮助");
JMenuItem yhcx = new JMenuItem("用户查询");
JMenuItem yhadd = new JMenuItem("添加用户");
JMenuItem sflist = new JMenuItem("收费标准");
JMenuItem sfzz = new JMenuItem("最终收费");
JMenuItem tscx = new JMenuItem("投诉查看");
JMenuItem tsadd = new JMenuItem("添加投诉");
JMenuItem gycx = new JMenuItem("公用信息查询");
JMenuItem zdadd = new JMenuItem("添加制度");
JMenuItem zdcx = new JMenuItem("制度查询");
public MainFrame() {

setTitle("小区欢迎您!");
setBounds(800, 750, 750, 700);
setLocation(800, 600);
JPanel mp = new JPanel();
JMenuBar mb = new JMenuBar();
JMenu yh = new JMenu("用户管理");
JMenu sf = new JMenu("收费管理");
JMenu ts = new JMenu("投诉管理");
JMenu gy = new JMenu("公工基础信息");
JMenu zd = new JMenu("制度管理");
JMenu hp = new JMenu("帮助中心");

mb.add(yh);
mb.add(sf);
mb.add(gy);
mb.add(zd);
mb.add(hp);

yhcx.addActionListener(this);
yhadd.addActionListener(this);
sflist.addActionListener(this);
sfzz.addActionListener(this);
tscx.addActionListener(this);
tsadd.addActionListener(this);
gycx.addActionListener(this);
zdadd.addActionListener(this);
zdcx.addActionListener(this);
help.addActionListener(this);

yh.add(yhadd);
yh.add(yhcx);
sf.add(sflist);
sf.add(sfzz);
ts.add(tscx);
ts.add(tsadd);
zd.add(zdadd);
zd.add(zdcx);
gy.add(gycx);
hp.add(help);

setJMenuBar(mb);
setContentPane(mp);
setVisible(true);