Java AWT | WindowsStateListener

WindowsStateListener是java的一部分。awt。活动包。它是一个处理窗口状态事件的接口。当与其关联的帧或窗口被图标化或最大化时,此接口返回一个事件。 类的抽象功能 :

null
  • WindowsStateChanged(WindowEvent e) :当窗口的状态更改时调用。

下面的程序演示了WindowsStateListener:

  1. 处理窗口事件的Java程序

JAVA

// Java Program to handle window events
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class listener1 extends JFrame implements WindowStateListener {
listener1()
{
super ( "main frame" );
setSize( 500 , 500 );
// create a sub frame
JFrame f = new JFrame( "sub" );
// add window state listener
f.addWindowStateListener( this );
// set size of window
f.setSize( 200 , 200 );
show();
f.show();
}
// if state of window is changed
public void windowStateChanged(WindowEvent e)
{
JOptionPane.showMessageDialog( this , "window state changed" );
}
// main class
public static void main(String args[])
{
listener1 l = new listener1();
}
}


  1. 输出:

图片[1]-Java AWT | WindowsStateListener-yiteyi-C++库

  1. Java程序来处理窗口事件并识别它们 :

JAVA

// Java Program to handle window events and identify them
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class listener extends JFrame implements WindowStateListener {
// label
JLabel l;
JLabel l1;
listener()
{
super ( "main frame" );
setSize( 500 , 500 );
// create a sub frame
JFrame f = new JFrame( "sub" );
// add window state listener
f.addWindowStateListener( this );
// set size of window
f.setSize( 200 , 200 );
// create a label
JLabel lo = new JLabel( "old state : " );
JLabel lo1 = new JLabel( "new state : " );
l = new JLabel( "" );
l1 = new JLabel( "" );
// create a panel
JPanel p = new JPanel();
p.add(lo);
p.add(l);
p.add(lo1);
p.add(l1);
add(p);
show();
f.show();
}
// if state of window is changed
public void windowStateChanged(WindowEvent e)
{
int s = e.getOldState(), s1 = e.getNewState();
// for old state
if (s == Frame.ICONIFIED)
l.setText( "window iconified" );
if (s == Frame.MAXIMIZED_BOTH)
l.setText( "window maximized horizontally and vertically" );
if (s == Frame.MAXIMIZED_HORIZ)
l.setText( "window maximized horizontally" );
if (s == Frame.MAXIMIZED_VERT)
l.setText( "window maximized vertically" );
if (s == Frame.NORMAL)
l.setText( "window normal" );
// for new state
if (s1 == Frame.ICONIFIED)
l1.setText( "window iconified" );
if (s1 == Frame.MAXIMIZED_BOTH)
l1.setText( "window maximized horizontally and vertically" );
if (s1 == Frame.MAXIMIZED_HORIZ)
l1.setText( "window maximized horizontally" );
if (s1 == Frame.MAXIMIZED_VERT)
l1.setText( "window maximized vertically" );
if (s1 == Frame.NORMAL)
l1.setText( "window normal" );
}
// main class
public static void main(String args[])
{
listener l = new listener();
}
}


  1. 输出:

图片[2]-Java AWT | WindowsStateListener-yiteyi-C++库

图片[3]-Java AWT | WindowsStateListener-yiteyi-C++库

图片[4]-Java AWT | WindowsStateListener-yiteyi-C++库

图片[5]-Java AWT | WindowsStateListener-yiteyi-C++库

注意:以下程序不会在联机编译器中运行,请使用脱机IDE 参考 : https://docs.oracle.com/javase/7/docs/api/java/awt/event/WindowStateListener.html

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享