- JDK :OpenJDK-11
- OS :CentOS 7.6.1810
- IDE :Eclipse 2019‑03
- typesetting :Markdown
package per.jizuiku.gui; import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; /** * @author 給最苦 * @date 2019/06/30 * @blog www.cnblogs.com/jizuiku */ public class Demo { /** * @param args */ public static void main(String[] args) { // 建立窗體對象並給出標題 String title = "點擊紅叉關閉退出程序"; Frame f = new Frame(title); // 這裏是重點,WindowAdapter適配器類 /* * 事件源 f * 事件 WindowsListener * 事件處理 new WindowAdapter(){} * 事件監聽 f.addWindowListener(new WindowAdapter(){}) */ f.addWindowListener(new WindowAdapter() { // 只要重寫 點擊紅叉 的事件處理函數就好 @Override public void windowClosing(WindowEvent e) { // TODO Auto-generated method stub System.out.println("程序運行結束"); System.exit(0); } }); // 可見 f.setVisible(true); } }
程序運行結束
/* * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package java.awt.event; /** * An abstract adapter class for receiving window events. * The methods in this class are empty. This class exists as * convenience for creating listener objects. * <P> * Extend this class to create a {@code WindowEvent} listener * and override the methods for the events of interest. (If you implement the * {@code WindowListener} interface, you have to define all of * the methods in it. This abstract class defines null methods for them * all, so you can only have to define methods for events you care about.) * <P> * Create a listener object using the extended class and then register it with * a Window using the window's {@code addWindowListener} * method. When the window's status changes by virtue of being opened, * closed, activated or deactivated, iconified or deiconified, * the relevant method in the listener * object is invoked, and the {@code WindowEvent} is passed to it. * * @see WindowEvent * @see WindowListener * @see <a href="http://docs.oracle.com/javase/tutorial/uiswing/events/windowlistener.html">Tutorial: Writing a Window Listener</a> * * @author Carl Quinn * @author Amy Fowler * @author David Mendenhall * @since 1.1 */ public abstract class WindowAdapter implements WindowListener, WindowStateListener, WindowFocusListener { /** * Invoked when a window has been opened. */ public void windowOpened(WindowEvent e) {} /** * Invoked when a window is in the process of being closed. * The close operation can be overridden at this point. */ public void windowClosing(WindowEvent e) {} /** * Invoked when a window has been closed. */ public void windowClosed(WindowEvent e) {} /** * Invoked when a window is iconified. */ public void windowIconified(WindowEvent e) {} /** * Invoked when a window is de-iconified. */ public void windowDeiconified(WindowEvent e) {} /** * Invoked when a window is activated. */ public void windowActivated(WindowEvent e) {} /** * Invoked when a window is de-activated. */ public void windowDeactivated(WindowEvent e) {} /** * Invoked when a window state is changed. * @since 1.4 */ public void windowStateChanged(WindowEvent e) {} /** * Invoked when the Window is set to be the focused Window, which means * that the Window, or one of its subcomponents, will receive keyboard * events. * * @since 1.4 */ public void windowGainedFocus(WindowEvent e) {} /** * Invoked when the Window is no longer the focused Window, which means * that keyboard events will no longer be delivered to the Window or any of * its subcomponents. * * @since 1.4 */ public void windowLostFocus(WindowEvent e) {} }
感謝幫助過 給最苦 的人們。
Java、Groovy和Scala等基於JVM的語言,優秀,值得學習。
規範的命名和代碼格式等,有助於溝通和理解。
JVM的配置、監控與優化,比較實用,值得學習。html