更新時間:2020-08-20 來源:黑馬程序員 瀏覽量:
在Swing組件中,最常見的一個容器就是JFrame,它是一個獨立存在的頂級容器(也叫窗口),不能放置在其他容器之中,JFrame支持通用窗口所有的基本功能,例如窗口最小化、設定窗口大小等。接下來通過一個案例來演示一下JFrame的使用效果,如文件1所示。
文件1 Example01.java
import javax.swing.*; public class Example01 { private static void createAndShowGUI() { // 創建并設置JFrame容器窗口 JFrame frame = new JFrame("JFrameTest"); // 設置關閉窗口時的默認操作 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 設置窗口尺寸 frame.setSize(250, 150); // 展示JFrame容器窗口 frame.setVisible(true); } public static void main(String[] args) { //使用SwingUtilities工具類調用createAndShowGUI()方法顯示GUI程序 SwingUtilities.invokeLater(Example01::createAndShowGUI); } }
運行結果如圖1所示。
圖1 運行結果
文件1中,通過JFrame類創建了一個窗體對象,在創建窗體對象的同時指定了窗體對象的標題為“JFrameTest”,然后通過JFrame類的相關方法分別設置了窗體對象關閉時的操作、窗體尺寸大小以及窗體信息可見。另外,在main()方法中,使用了javax.swing包下中SwingUtilities(封裝有一系列操作Swing的方法集合工具類)工具類的invokeLater()方法執行了GUI程序,該方法需要傳入一個接口作為參數,示例中使用到了方法引用進行傳參。
JDialog是Swing的另外一個頂級容器,通常用來表示對話框窗口。JDialog對話框可分為兩種:模態對話框和非模態對話框。所謂模態對話框是指用戶需要等到處理完對話框后才能繼續與其他窗口交互,而非模態對話框允許用戶在處理對話框的同時與其他窗口交互。
對話框是模態或者非模態,可以在創建JDialog對象時為構造方法傳入參數來設置,也可以在創建JDialog對象后調用它的setModal()方法來進行設置,JDialog常用的構造方法如表1所示。
表1 JDialog常用構造方法
方法聲明 | 功能描述 |
JDialog(Frame owner) | 構造方法,用來創建一個非模態的對話框,owner為對話框所有者(頂級窗口JFrame) |
JDialog(Frame owner,String title) | 構造方法,創建一個具有指定標題的非模態對話框 |
JDialog(Frame owner,boolean modal) | 創建一個有指定模式的無標題對話框 |
表1中,列舉了JDialog三個常用的構造方法,在這三個構造方法中都需要接收一個Frame類型的對象,表示對話框所有者。第三個構造方法中,參數modal用來指定JDialog窗口是模態還是非模態,如果modal值設置為true,對話框就是模態對話框,反之則是非模態對話框,如果不設置modal的值,其默認值為false,也就是是非模態對話框。
接下來通過一個案例來學習如何使用JDialog對話框,如文件1所示。
文件1 Example02.java
import javax.swing.*; public class Example02 { private static void createAndShowGUI() { // 創建并設置JFrame容器窗口 JFrame frame = new JFrame("JFrameTest"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(350, 150); frame.setVisible(true); // 在JFrame容器窗口基礎上創建并設置JDialog容器窗口 JDialog dialog = new JDialog(frame, "JDialog對話框",true); dialog.setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE); dialog.setSize(200, 100); dialog.setVisible(true); } public static void main(String[] args) { // 使用SwingUtilities工具類調用createAndShowGUI()方法執行并顯示GUI程序 SwingUtilities.invokeLater(Example02::createAndShowGUI); } }
編運行結果如圖1所示。
圖1 運行結果
在文件1中,先后創建并設置了JFrame和JDialog兩個容器對象,從文件代碼可以看出兩種頂級容器的創建方式基本相同,但從圖1的結果顯示看出,雖然JFrame和JDialog都可以創建頂級容器窗口,但JDialog創建的窗口右上角沒有放大和縮小功能。另外,由于創建JDialog容器對象時,設置的模態參數modal為true,所以在操作時,必須先關閉JDialog對話框后才可以與JFrame窗口進行交互。
猜你喜歡: