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

求大神帮忙,谢谢啦!

我准备在用鼠标点击期刊登陆时弹出相应的对话框。下面是我的代码,点击期刊登陆时没反应,不知道为什么??

下面是为了方便大家运行调试的文本代码

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
///////////////////////////////
class Dialogs extends JDialog
{//制作对话框
  public Dialogs(JFrame parent)
  {
  super(parent,"My dialog",true);
  Container cp=getContentPane();
 cp.setLayout(new FlowLayout());
 cp.add(new JLabel("Here is my dialog"));
 JButton ok=new JButton("OK");
  ok.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent e){
  dispose();
 }
 });
 cp.add(ok);
 setSize(500,500);
 }
}
////////////////////////////////////////////////
class WindowText extends JFrame// implements ActionListener
{//private Dialogs dlg=new Dialogs (null);
  private JFrame wd;
  JMenuBar menubar;//菜单条
  JMenu menu1,menu2,menu3;//菜单选项
Dialogs dlg=new Dialogs (null);
   WindowText()
   {
    init();
   }
   
  public void init()
   {
      wd=new JFrame("期刊管理系统");
      wd.setBounds(100,100,200,300);
      
      setDefaultCloseOperation(EXIT_ON_CLOSE);
     menubar=new JMenuBar();
     menu1=new JMenu("期刊登记");
     menu2=new JMenu("期刊查询");
     menu3=new JMenu("期刊借阅");
     
     menubar.add(menu1);
     menubar.add(menu2);
     menubar.add(menu3);
     wd.setJMenuBar(menubar);
     inirt();
     wd.setVisible(true);
    // myEvent();
}
public void inirt(){
  menu1.addActionListener(new ActionListener(){//这里增加事件
   public void actionPerformed(ActionEvent e){
    dlg.setVisible(true);
   }
  });
  
 }
 
public static void main(String[] args)
{

   
    new WindowText();
   
    }

 }














    //menu1
    //JButton button=new JButton("按钮");
    //menu1=new JMenu("期刊登记");
    //menu1.add(ON_UPDATE_COMMAND_UI);
    ///*menu1.addActionListener(new MouseListener(){
    //public void actionPerformed(MouseEvent event)
    // {
    // DialogPanel dialog=new DialogPanel();
// }
// });
//wd.add(button);
    // }*/
    //  //jmt1.addActionListener(new MenuAction(this));
     
     
     
     
     
     
 /* class DialogPanel extends JPanel
{
JDialog dialog=new JDialog();
public DialogPanel()
{
//加入其它你想加的东西
dialog.add(this);
dialog.setSize(300,300);
dialog.setLocation(300,300);
dialog.setVisible(true);
}
}*/

   
   
 
 
 
   


   

------解决方案--------------------
lz喜欢桌面应用吗,还是只是初学swing呢,我也是刚从初级走过来的,我看了lz的代码,发现了问题在哪儿了:
1.
menu1.addActionListener(new ActionListener() {// 这里增加事件
public void actionPerformed(ActionEvent e) {
dlg.show();
}
});

这个是给按钮等组件添加点击时间的,而menu1是一个菜单,这个好像是没有任何效果的。
2.菜单有专门的菜单事件,你不妨去探索一下在菜单事件中调用dlg.show();

希望lz自己先去实践,然后看下面代码,参考代码如下:
menu1.addMenuListener(new MenuListener() {

@Override
public void menuSelected(MenuEvent e) {