close

參考答案:

import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class JDA01
{
    public static void main(String args[])
    {
        new MyApp();
    }
}

class MyApp
{
        Frame mainWin;
        int num=9;
        
        MyApp()
        {      
            //建立主視窗mainWin
            mainWin = new Frame("Nuber of Windows = 9"); //創造新視窗時,連帶設定標題為『Nuber of Windows = 9』
            mainWin.setSize(300,50);  //設定視窗大小 (寬300,高50)
            mainWin.setLocation(100,100);  //設定視窗位置,螢幕的最左上角為(0,0)
            mainWin.setVisible(true);  //上面幾行完成了屬性設定,設定視窗為可視,視窗就會顯示在螢幕上
            
            Frame f;  //建立視窗變數,準備建立子視窗
            for(int i=0;i<8;i++) //從0~7,總共8個子視窗
            {
                f = new Frame(); //建立視窗物件
                f.setSize(50,50);  //設定寬跟高
                f.setLocation(150*(i%4)+100, i<4 ? 200:300); //設定位置,依題目要求一列要四個視窗,兩列分別為i=0~3 和 i=4~7
                f.setVisible(true);  //顯示視窗
                f.addWindowListener(new WindowAdapter()  //增加視窗事件
                {
                    public void windowClosing(WindowEvent e)  //事件發生時要執行的Function
                    {
                        mainWin.setTitle("Number of Windows = "+(--num));  //更改主視窗標題,每關閉一個視窗就減一
                        e.getWindow().setVisible(false);  //e為觸發事件傳入的參數,取得觸發此事件的視窗 (就是使用者按下關閉的那個視窗) ,然後設定為不可視 (視窗就消失了)
                    }
                });
            }

            mainWin.addWindowListener(new WindowAdapter()  //添加主視窗的事件
            {
                public void windowClosing(WindowEvent e)  //如果觸發了視窗關閉事件
                {
                    System.exit(0);  //關閉此程式
                }
            });

        }
}

執行畫面:

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Dino 的頭像
    Dino

    Dino`s Note

    Dino 發表在 痞客邦 留言(0) 人氣()