| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 996 人关注过本帖
标题:如何监听?请各位帮解释一下
只看楼主 加入收藏
private
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2006-5-1
收藏
 问题点数:0 回复次数:13 
如何监听?请各位帮解释一下

我写了一个窗口程序,可是对子窗口监听怎么无效??
可以的话帮我改一下,谢谢!!最好帮我解释一下。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MainWindow extends JFrame{
private JDesktopPane theDesktop;
private JMenuBar bar;
public MainWindow()
{
super("这里是主窗口");

bar = new JMenuBar();
JMenu addWindow = new JMenu("add");
JMenuItem open = new JMenuItem("add one");
addWindow.add( open );
bar.add ( addWindow );
setJMenuBar( bar );

theDesktop = new JDesktopPane();//用来放子窗
getContentPane().add( theDesktop );//把子装子窗的面板放进

open.addActionListener(
new ActionListener(){
public void actionPerformed( ActionEvent ae ){

MyJInternalFrame frame = new MyJInternalFrame(
"这里是子窗口",true,true,true,true);
Container container = frame.getContentPane();
MyJPanel panel = new MyJPanel();
container.add( panel, BorderLayout.CENTER );
frame.pack();
theDesktop.add( frame );
frame.setVisible( true );

}
}

);
setSize(800,600);
setVisible( true );

}
public static void main(String arg[])
{
MainWindow mainWindow = new MainWindow();
mainWindow.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}
class MyJPanel extends JPanel{
public MyJPanel()
{
}
public void paintComponent( Graphics g )
{
super.paintComponent( g );
g.drawRect( 25,25,450,300);
g.drawString("在窗口里我也能画",30,60);
}

public Dimension getPerferredSize()
{
return new Dimension(700,500);
}
}
class MyJInternalFrame extends JInternalFrame implements WindowListener{
public MyJInternalFrame(){}
public MyJInternalFrame(String s,boolean b1,boolean b2,boolean b3,boolean b4)
{
super( s, b1, b2, b3, b4 );
}

public void windowClosing( WindowEvent we )
{
Sysem.out.println("窗口关闭");
JOptionPane.showMessageDialog(null,"窗口关闭");
}
public void windowClosed(WindowEvent we){}
public void windowActivated(WindowEvent we){}
public void windowDeactivated(WindowEvent we){}
public void windowIconified(WindowEvent we){}
public void windowDeiconified(WindowEvent we){}
public void windowOpened(WindowEvent we){}

}


搜索更多相关主题的帖子: 监听 解释 
2006-06-20 18:28
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
class MyJInternalFrame extends JInternalFrame implements WindowListener{
public MyJInternalFrame(){}
public MyJInternalFrame(String s,boolean b1,boolean b2,boolean b3,boolean b4)
{
super( s, b1, b2, b3, b4 );
}

public void windowClosing( WindowEvent we )
{
Sysem.out.println("窗口关闭");
JOptionPane.showMessageDialog(null,"窗口关闭");
}
public void windowClosed(WindowEvent we){}
public void windowActivated(WindowEvent we){}
public void windowDeactivated(WindowEvent we){}
public void windowIconified(WindowEvent we){}
public void windowDeiconified(WindowEvent we){}
public void windowOpened(WindowEvent we){}

}
这个类虽然继承了WindowListener,但是没有加注册window事件啊
你应该在构造函数里加一句this.addWindowListener(this);


可惜不是你,陪我到最后
2006-06-20 18:31
private
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2006-5-1
收藏
得分:0 
在哪里加?
在构造函数里加了 就编译出错了

2006-06-20 18:37
private
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2006-5-1
收藏
得分:0 

请说清楚一点,在哪里加?


2006-06-20 18:54
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
public MyJInternalFrame(String s,boolean b1,boolean b2,boolean b3,boolean b4)
{
super( s, b1, b2, b3, b4 );
this.addWindowListener(this);
}
当然在构造函数里加,怎么会出错呢

可惜不是你,陪我到最后
2006-06-20 19:57
水影月圆
Rank: 4
等 级:贵宾
威 望:11
帖 子:738
专家分:0
注 册:2005-8-2
收藏
得分:0 
你能点的出来吗?冰封?

子非鱼,安知鱼之江湖?子非我,安知我之功夫 http://20681.
2006-06-20 20:03
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
我没有运行他的代码,只是帮他把事件监听加进去了
其它的我没有看

可惜不是你,陪我到最后
2006-06-20 20:04
private
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2006-5-1
收藏
得分:0 

你的电脑上不会错吗? 我的下面的错;


Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\user>cd\

C:\>e:

E:\>cd lx

E:\lx>javac MainWindow.java

E:\lx>java MainWindow

E:\lx>javac MainWindow.java
MainWindow.java:69: 找不到符号
符号: 方法 addWindowListener(MyJInternalFrame)
位置: 类 MyJInternalFrame
this.addWindowListener(this);
^
1 错误

E:\lx>


2006-06-20 20:05
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
怎么会出错呢,你已经实现了WindowListener的接口啊

可惜不是你,陪我到最后
2006-06-20 20:12
水影月圆
Rank: 4
等 级:贵宾
威 望:11
帖 子:738
专家分:0
注 册:2005-8-2
收藏
得分:0 
import java.awt.*;
import java.awt.event.*;
public class MyAdapterDemo
{
public static void main(String args[])
{
MyFrame frm=new MyFrame();
frm.show();
}
}
class MyFrame extends Frame
{
boolean w;
public MyFrame()
{
w=false;
setTitle("测试适配器类");
setSize(300,200);
// MyPanel panel=new MyPanel();
// add(panel);
addWindowListener(new MyWindowAdapter());
}
private class MyWindowAdapter extends WindowAdapter
{
public void windowClosing(WindowEvent wevent)
{
if(w)
dispose();
else
System.out.println("22222");
}
}
}

不知道这样能不能帮着你

子非鱼,安知鱼之江湖?子非我,安知我之功夫 http://20681.
2006-06-20 20:42
快速回复:如何监听?请各位帮解释一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031474 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved