JFrame窗體的學習
一、與小恐龍程序挑戰的關係
這部分學習是爲理解小恐龍程序挑戰做準備的,我雖然照着例題打了小恐龍程序的許多代碼,但好多方法並不會用。程序中用到窗口,也就是Swing的使用。這裏將記錄關於JFrame窗口的學習過程。
二、學習過程
1.讓窗口出現
- 單詞:visible(看得見的)
- 導入swing包,先打
import javax.swing.*;
這裏放星號,即*
是用到swing裏的很多方法,則不一個個打出。 - 在
main
裏打JFrame f=new JFrame("這裏爲窗口標題");
則JFrame窗口便創建完畢。 - 但從上一步完後調試代碼的話,窗體並不顯現出來,因爲創建的窗體是不可見的。那麼接下來要用到讓窗體顯現的方法,即
f.setVisible(true);
。如此之後運行代碼便在左上角出現一個窗口。 - 到此部分的代碼爲:
import javax.swing.*;
class Demo{
public static void main(String[] args){
JFrame f=new JFrame("窗口標題"); // 創建窗體標題
f.setVisible(true);// 是否可見方法
}
}
- 效果爲(左上角小框框):
可以通過拖拽把它拉開,效果如下:
2.窗口關閉規則問題
雖然將窗體顯現出來,但仍有問題要解決。比如當我將窗體點擊×後窗體雖然消失了,
但我在cmd的調試界面並沒有結束,也就是說程序仍然在運行。我還需要用到一些方法在點擊窗體的×時,窗體關閉並停止運行程序。這裏需要用到相關的方法:f.setDefaultCloseOperation(JFrame.A);
- default(默認) Operation(運算)nothing(沒有什麼) hide(隱藏) dispose(處理)
- 當上一串代碼裏的A爲:
- EXIT_ON_CLOSE
表示隱藏窗口,並停止運行程序。也就是說在這裏點了×,便可在關閉窗口的同時並停止程序運行。 - DO_NOTHING_ON_CLOSE
表示無任何操作,點×不會隱藏窗口,程序也不會停止。因爲這個原因我關不了這個創立的窗口,最後是打開了任務管理器才關掉這個窗口。 - HIDE_ON_CLOSE
表示隱藏窗口,但不停止程序的運行。因爲我忘記了如何在cmd裏關閉程序的用法,這個方法我不得不關閉cmd後再開一個。 - DISPOSE_ON_CLOSE
表示釋放窗口資源。效果爲,點擊×後過一小會程序才停止運行。 - 到此部分的代碼爲:
import javax.swing.*;
class Demo{
public static void main(String[] args){
JFrame f=new JFrame("窗口標題");// 創建窗體標題
f.setVisible(true); // 是否可見方法
/*
* 窗口的關閉規則
* EXIT_ON_CLOS:隱藏窗口,並停止程序運行
* DO_NOTHING_ON_CLOSE:無任何操作
* HIDE_ON_CLOSE:隱藏窗口,不停止程序運行
* DISPOSE_ON_CLOSE:釋放窗口資源
*/
//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 隱藏窗口,停止程序運行
//f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);// 無任何操作,點×不會隱藏窗口,程序也不會停止
//f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);// 隱藏窗口,不停止程序運行
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);// 釋放窗口資源
}
}
3.設置窗口的調整
前面部分的設置的窗口都是縮起來的窗口。爲求美觀還應調整窗口的默認尺寸、位置等。
(1)設置窗口的尺寸
輸入f.setSize(600,300);
即可設置一個長600,寬300 的窗口。單位:像素。這題可以調整長和寬的數字,來設置相應尺寸的窗口。
- Size(尺寸)
(2)設置窗口座標(位置)
輸入f.setLocation(300,300);
後則表示創立的窗口在桌面的座標。括號裏(x,y),x和y爲數值,單位像素 。以電腦桌面左上角爲原點,窗口根據左上角位置相對於原點的移動。這裏表示窗口從電腦左上角右移300像素,向下移300像素。
- location(位置)
- 到此的代碼爲:
import javax.swing.*;
class Demo{
public static void main(String[] args){
JFrame f=new JFrame("窗口標題");// 創建窗體標題
f.setVisible(true); // 是否可見方法
/*
* 窗體的關閉規則
* EXIT_ON_CLOS:隱藏窗口,並停止程序運行
* DO_NOTHING_ON_CLOSE:無任何操作
* HIDE_ON_CLOSE:隱藏窗口,不停止程序運行
* DISPOSE_ON_CLOSE:釋放窗口資源
*/
//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 隱藏窗口,停止程序運行
//f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);// 無任何操作,點×不會隱藏窗口,程序也不會停止
//f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);// 隱藏窗口,不停止程序運行
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);// 釋放窗口資源
/*
* 調整窗口的大小,這裏設置了一個 長:600 寬:300 的窗口。單位:像素。
*/
f.setSize(600,300);// 設置窗口的大小,(單位:像素)括號裏:長,寬
/*
* 設置窗口位置,也可以說是座標。
*/
f.setLocation(200,200);//設置座標
}
}
(3)同時調整窗口尺寸、座標(位置)的方法
前面的方法調整窗口的大小和位置是分開調整的。這裏則還有同時調整窗口大小、位置的方法。輸入f.setBounds(600,300,350,200);
括號內的參數,x軸,y軸,長,寬。單位:像素。這裏這表示一個長350像素,寬200像素,窗口從桌面左上角左右移600像素,下移300像素。
- bounds(邊界)
三、本文最終代碼
import javax.swing.*;
class Demo{
public static void main(String[] args){
JFrame f=new JFrame("窗口標題");// 創建窗體標題
f.setVisible(true); // 是否可見方法
/*
* 窗體的關閉規則
* EXIT_ON_CLOS:隱藏窗口,並停止程序運行
* DO_NOTHING_ON_CLOSE:無任何操作
* HIDE_ON_CLOSE:隱藏窗口,不停止程序運行
* DISPOSE_ON_CLOSE:釋放窗口資源
*/
//f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 隱藏窗口,停止程序運行
//f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);// 無任何操作,點×不會隱藏窗口,程序也不會停止
//f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);// 隱藏窗口,不停止程序運行
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);// 釋放窗口資源
/*
* 調整窗口的大小,這裏設置了一個 長:600 寬:300 的窗口。單位:像素。
*/
//f.setSize(600,300);// 設置窗口的大小,(單位:像素)括號裏:長,寬
/*
* 設置窗口位置,也可以說是座標。
*/
//f.setLocation(200,200);//設置座標
/*
* 同時調整窗口大小、位置的方法
*/
f.setBounds(600,300,350,200);// x軸,y軸,長,寬 單位:像素
}
}
四、定位日期
2020.7.6