Article View: cn.bbs.comp.lang.java
Article #21567Java ͼ���û��������֮�� ��ܡ����������¼�
From: ����è->�ú�ѧϰ...
Date: Thu, 27 Nov 2003 16:37
Date: Thu, 27 Nov 2003 16:37
113 lines
11486 bytes
11486 bytes
��. ��ܡ����������¼�
������� (Frame) �� Java ͼ���û�����Ļ����������ͨ����˵�Ĵ��ڣ��� Wi
ndows/XWindow Ӧ�ó���ĵ���������˵�� Windows/XWindow����Һ��������뵽����
�� (Event) ���Java ��ͼ���û����������¼���ģ������ɸ��ָ���ļ�����
(Listener) ���������¼���
�������������Ҫ��ijһ�������ij���¼����в��ʹ���ʱ������ҪΪ����Ӽ�����
�����磬����Ҫ��һ������ (JFrame) ����ʱ�ı���ı��⣬���Ǿ���ҪΪ������� (
JFrame ����) ���һ�����Լ������ڡ���һ�¼��ļ���������WindowListene
r��
������ô��Ӽ������أ���ͨ����������ṩ��һ�� addXXXXXListener �ķ��������
������ JFrame ���ṩ�� addWindowListener ������Ӵ��ڼ����� (WindowListener)
��
����һ��������������ֻ����һ���¼������ǿ��Լ�����صĶ���¼������� WindowL
istener ���˼���ڼ����¼� (windowActivate) ֮�⣬�����Լ���ڹر��¼� (
windowClosing) �ȡ���ô��Щ�¼���ô����أ��Ϳ����ؼ������� (Class) �Ķ����
�� (Method) �ˣ�����������ij���¼����Զ�������صķ���������ֻҪ������
���������Ϳ��Դ�����Ӧ���¼��ˡ�
���������ȿ�һ�����ӣ�
/**
* TestFrame.java
* @author Fancy
*/
import javax.swing.*;
import java.awt.event.*;
public class TestFrame extends JFrame {
private int counter = 0;
public TestFrame() {
/* ʹ�����������һ�����ڼ����� */
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.out.println("Exit when Closed event");
System.exit(0); //�˳�Ӧ�ó���
}
public void windowActivated(WindowEvent e) {
setTitle("Test Frame " + counter++); // �ı䴰�ڱ���
}
});
setResizable(false); // ���ô���Ϊ�̶���С
setSize(200, 150);
}
public static void main(String[] args) {
TestFrame tf = new TestFrame();
tf.show();
}
}
������������У����������һ��������(public class TestFrame extends JFrame {
...)������Ϊ������������һ�����ڼ����� (addWindowListener(new WindowAdapt
er() ...)����������ӵ�������ڼ�������Ҫ�����������¼������ڹر� (public vo
id windowClosing(WindowEvent e) ...) �ʹ��ڼ��� (public void windowActivated
(WindowEvent e) ...)���ڴ��ڹر��¼��������˳������Ӧ�ó���(System.exit(0);
)�����ڴ��ڼ����¼��У����Ǹı��˴��ڵı��� (setTitle("Test Frame " + counte
r++);)����������� main ��������ʾ���ⴰ�����һ��ʵ�����еõ���ͼ��ʾ��
���
���������������н�����һ��ʲô������û�мӵĿ�ܣ�Ҳ����һ���մ��ڡ���ô
����֪����ʾһ����������Ҫ�ļ�������𣿲�֪��û��ϵ�����������㣬��ʾһ����
��ֻ��Ҫ������£����ʵ��(����) -> ���ô�С -> ��ʾ����Ӧ�ģ�������������
���룺
����JFrame frame = new JFrame("Frame's Title");
����frame.setSize(400, 300);
����frame.show();
����Ҳ�����˵����һ�����˼���������������˼��Ҳ���ף�Ϊʲôһ��Ҫ�ڶ���
�أ���ʵ����Ҳ�������ˣ����㻭һ��û���д�С�ľ������ܻ������𣿲��ܡ�ͬ��
û�д�С�Ĵ��ڣ���ô��ʾ������������Ҫ�� setSize(int width, int height) ����
Ϊ�����ô�С�����ǻ�����һ�ַ������� JFrame �� pack() ���������Լ�����һ����
С��pack() �ڶ���ʱ������������ģ�����ʱ����Ҳ�������Ц���á��������Ծ�֪��
�ˡ�
������ JFrame �У�����ʹ�� addWindowListener ��������һ�������� WindowListen
er (addWindowListener(new WindowAdapter() ...) ȥ�������� JFrame �ϵĴ�����
����WindowListener ��һ���ӿڣ��� java.awt.event ������У����������к���û
��ʹ�� WindowListener������ʹ�õ� WindowsAdapter �ɣ�������ô���£�
����WindowAdapter �� WindowsListener �ӿڵ�һ�����ʵ�֣�Ҳ�ڰ� java.awt
.event �С��������ֱ��ʹ�� WindowListener ����һ�������࣬��Ҫʵ�����ÿһ��
���� (һ�� 7 ��)���� WindowAdapter ��Ϊ WindowListener ���ʵ�֣��Ѿ�ʵ��
�����ÿһ������Ϊ�շ��� (��ֻ�����䣬����˵û�����ķ���)���� WindowAd
apter ��ֻ��Ҫ���ؿ����õ��ķ��� (������ֻ�� 2 ��) �����ˣ�����Ҫ��ȥʵ��ÿ
һ���������ŵ��Զ������ٴ�������
������ JFrame �Ϸ���Ĵ����¼� (WindowEvent) ������
windowActivated(WindowEvent e) ���ڵõ�����ʱ����
windowClosed(WindowEvent e) ���ڹر�֮��
windowClosing(WindowEvent e) ���ڹر�ʱ����
windowDeactivated(WindowEvent e) ����ʧȥ����ʱ����
windowDeiconified(WindowEvent e)
windowIconified(WindowEvent e)
windowOpened(WindowEvent e) ���ڴ�֮��
����������������������������������������в���Ĵ��ں�����һ��Ӧ�ó���֮
�������л� (�� Windows ����ϵͳ�������ʹ�� Alt+Tab �����л�)�������Կ����㷢
����ʲô����û�������ǵ�ʾ��ڱ����ϵ�����һֱ�����ӣ�������� windowActiv
ated �¼��� setTitle("Test Frame " + counter++); �Ĺ��͡�
��������һ���¼����?�� windowClosing �е� System.exit(0) ��֤�˵����ڱ���
��ʱ�˳���ǰ�� Java Ӧ�ó������������Ĵ���������أ�����֮����ᷢ�֣�
������Ȼ�ر��ˣ�������û�н�����ʱ������ʹ�� ^C ǿ�н���֮�⣬����Ҳû
������취�ˡ����ԣ���һ��dz���Ҫ����������ڹرմ��ڵ�ʱ���˳�Ӧ�ó�����
Ҫ���Լ�д���봦�� windowClosing �¼�������Ҳ����Ȼ����ʵ��������һ�����
�취���� JFrame �Լ���������¡�����ֻ��Ҫ���µ��� JFrame �� setDefaultClose
Operation ���ɣ�
����frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
�������ǿ����� JFrame ��������� AWT ���� Swing ��������ǣ���Ȼ���� add ����
��ȴ����ֱ��������������������׳��쳣�������ž����ԡ������������ԭ��ֻ
��һ�����ͣ�JFrame ����һ����������ֻ��һ����ܡ���ô��Ӧ����ô�������أ�
����JFrame ��һ�� Content Pane����������ʾ��������������������� Content P
ane �С�JFrame �ṩ������������getContentPane �� setContentPane �������ڻ�ȡ
�������� Content Pane �ġ�ͨ�����Dz���Ҫ�������� JFrame �� Content Pane��ֻ��
Ҫֱ�ӻ�ȡ��� Content Pane ���������ȡ��磺(new JFrame()).getContentPane(
).add(new Button("test button"));
--
��......�����ѱ���ң����ҵ�����ͻ�������⣬��ĽŲ�����ø������˵IJ�һ
�������˵ĽŲ��������Ѹ�ٶ㵽�ص��£�����ĽŲ������������һ������ٻ�
����Ѩ��Ȼ���㿴�������DZߵ����������Ҳ���������Ӷ�����˵һ������Ҳû
�С����������Ҳ������룬��ʵ�ںܿɱ������ǣ�����һͷ���ɫ��ͷ���������ѱ
���ң��Ǹû��ж������ð������ɫ�����ӻ����������㣬��Ҳ��ϲ�����������䴵
������������ ------��С���ӡ�
[m[1;31m�� ��Դ:����ˮ˼Դ bbs.sjtu.edu.cn��[FROM: 211.80.91.3][m
Technical Details
Message-ID:
<49QaMb$A8S@bbs.sjtu.edu.cn>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!c03.atl99!sjc70.webusenet.com!news.webusenet.com!news.bylinux.net!news.ccie.net.cn!SJTUShow Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB X-Google-Thread: f6cb0,72528e5a48d15659,start X-Google-Attributes: gidf6cb0,public X-Google-ArrivalTime: 2003-11-27 08:36:02 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!c03.atl99!sjc70.webusenet.com!news.webusenet.com!news.bylinux.net!news.ccie.net.cn!SJTU From: bocoo.bbs@bbs.sjtu.edu.cn (����è->�ú�ѧϰ...) Newsgroups: cn.bbs.comp.lang.java Subject: Java ͼ���û��������֮�� ��ܡ����������¼� Date: 27 Nov 2003 16:37:45 GMT Organization: ��ˮ˼Դ Message-ID: <49QaMb$A8S@bbs.sjtu.edu.cn> Mime-Version: 1.0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: 8bit X-Filename: Java/M.1069951045.A Lines: 113