import javax.swing.*;
import java.awt.event.*;
public class Swing15 extends JFrame implements WindowListener
{
   public Swing15()
   {
   this.setTitle("窗体打开、关闭和激活事件");
   this.addWindowListener(this);
   this.setBounds(300,250,300,200);
   this.setVisible(true);
   }
   public void windowOpened(WindowEvent e)
   {
   System.out.println("窗体首次变为可见");
   }
   public void windowClosing(WindowEvent e)
   {
   System.out.println("关闭窗体");
   }
   public void windowClosed(WindowEvent e)
   {
   System.out.println("关闭窗口后");
   }
   public void windowIconfied(WindowEvent e)
   {
   System.out.println("从正常状态变为最小化状态");
   }
   public void windowDeiconfied(WindowEvent e)
   {
   System.out.println("从最小化状态变为正常状态");
   }
   public void windowActivated(WindowEvent e)
   {
   System.out.println("窗体被激活");
   }
   public void windowDeactivated(WindowEvent e)
   {
   System.out.println("窗体变为非激活");
   }
   public static void main(String[] args)
   {
   Swing15 s=new Swing15();
   }
}
这道程序的运行咋的就不能如我所愿了咯,有好多奇怪的信息,看不懂,呵呵,麻烦讲解下哦。

解决方案 »

  1.   

    你这段代码运行后事件并不会执行。就会显示一个窗口。如果你要执行事件的话,还要添加监听把这些事件的代码监听addWindowListener(new WindowListener(){//实现监听接口 });
    具体的做法你可以参考下其它的书或到网上多找找相关的资料
      

  2.   

    Swing15.java:3: Swing15 不是抽象的,并且未覆盖 java.awt.event.WindowListener 中的抽象方法 windowDeiconified(java.awt.event.WindowEvent)
    还有你有个方法没有实现,你编译能过吗????
      

  3.   

    还有2个方法需要覆盖.import javax.swing.*;
    import java.awt.event.*;public class Swing15 extends JFrame implements WindowListener {
    public Swing15() {
    this.setTitle("窗体打开、关闭和激活事件");
    this.addWindowListener(this);
    this.setBounds(300, 250, 300, 200);
    this.setVisible(true);
    } public void windowOpened(WindowEvent e) {
    System.out.println("窗体首次变为可见");
    } public void windowClosing(WindowEvent e) {
    System.out.println("关闭窗体");
    } public void windowClosed(WindowEvent e) {
    System.out.println("关闭窗口后");
    } public void windowIconfied(WindowEvent e) {
    System.out.println("从正常状态变为最小化状态");
    } public void windowDeiconfied(WindowEvent e) {
    System.out.println("从最小化状态变为正常状态");
    } public void windowActivated(WindowEvent e) {
    System.out.println("窗体被激活");
    } public void windowDeactivated(WindowEvent e) {
    System.out.println("窗体变为非激活");
    } public static void main(String[] args) {
    Swing15 s = new Swing15();
    } public void windowDeiconified(WindowEvent e) { //加上这个 } public void windowIconified(WindowEvent e) { //加上这个 }
    }
      

  4.   


    import javax.swing.*;
    import java.awt.event.*;public class Swing15 extends JFrame implements WindowListener {
    public Swing15() {
    this.setTitle("Window Open-Close-Activate event");
    this.addWindowListener(this);
    this.setBounds(300, 250, 300, 200);
    this.setVisible(true);
    } public void windowOpened(WindowEvent e) {
    System.out.println("window opened first time");
    } public void windowClosing(WindowEvent e) {
    System.out.println("window closing");
    } public void windowClosed(WindowEvent e) {
    System.out.println("window closed");
    } public void windowIconfied(WindowEvent e) {            //Iconfied--->Iconified      拼写错误?
    System.out.println("window iconfied");
    } public void windowDeiconfied(WindowEvent e) {          //Deiconfied--->Deiconified  拼写错误?
    System.out.println("window deiconfied");
    } public void windowActivated(WindowEvent e) {
    System.out.println("window activated");
    } public void windowDeactivated(WindowEvent e) {
    System.out.println("window deactivated");
    } public static void main(String[] args) {
    Swing15 s = new Swing15();
    } @Override
    public void windowDeiconified(WindowEvent e) {
    // TODO Auto-generated method stub
    System.out.println("window deiconified");
    } @Override
    public void windowIconified(WindowEvent e) {
    // TODO Auto-generated method stub
    System.out.println("window iconified");
    }
    }