求大神帮忙,谢谢啦!
我准备在用鼠标点击期刊登陆时弹出相应的对话框。下面是我的代码,点击期刊登陆时没反应,不知道为什么??
。
下面是为了方便大家运行调试的文本代码
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) {