幫網(wǎng)站做關(guān)鍵詞排名優(yōu)化信息流廣告是什么意思
文章目錄
- 前言
- 一、JDialog窗體的介紹
- 二、JDialog窗體的使用
- 1.JDialog的常用構(gòu)造方法
- 2.實例展示及分析
- 總結(jié)
前言
? ? ? ? JDialog窗體是窗體中的另一種類型的窗體,指對話框窗體。與JFrame窗體類似,絕大部分對于JFrame窗體使用的方法,對于JDialog窗體也同樣適用。
一、JDialog窗體的介紹
? ? ? ? JDialog窗體是Swing組件中的對話框組件,繼承了AWT組件中的java.awt.Dialog類。JDialog窗體實質(zhì)上就是另一種類型的窗體。在使用的同時也需要調(diào)用 getContentPane() 方法將窗體轉(zhuǎn)換為容器,然后在容器中設(shè)置窗體的特性。
二、JDialog窗體的使用
1.JDialog的常用構(gòu)造方法
? ? ? ? JDialog類的幾種常用的構(gòu)造方法(方法名是可變的):
? ? ? ? ? ? ? ? (1)public JDialog():創(chuàng)建了一個沒有標(biāo)題和父窗體的對話框
? ? ? ? ? ? ? ? (2)public JDialog(Frame f):創(chuàng)建了一個有指定父窗體對象的對話框,沒有給父窗體標(biāo)題
? ? ? ? ? ? ? ? (3)public JDialog(Frame f, Boolean model):創(chuàng)建了一個指定類型的對話框,并指定了父窗體,沒有給父窗體標(biāo)題
? ? ? ? ? ? ? ? (4)public JDialog(Frame f,String title):創(chuàng)建了一個指定父窗體和父窗體標(biāo)題的對話框
? ? ? ? ? ? ? ? (5)public JDialog(Frame f,String title,boolean modle):創(chuàng)建了一個指定了父窗體,父窗體標(biāo)題和對話框模式的對話框。
? ? ? ? ? ? ? ? 實例展示(展示的是最全的第五個,以上方法使用方式一致,引用參數(shù)不同):
import javax.swing.*;
import java.awt.*;public class JDialogDemo2{public JDialogDemo2(Frame f, String title, boolean modle) {//創(chuàng)建一個新的特定的對話框窗體,可指定了窗體對象,標(biāo)題,和模式JDialog dialog = new JDialog(f, title, modle);//設(shè)定對話框窗體的大小dialog.setSize(300, 200);//設(shè)定對話框窗體的關(guān)閉方式dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);//設(shè)定該窗體可見dialog.setVisible(true);}public static void main(String[] args) {//創(chuàng)建一個JFrame對象,在實例化JDialogDemo2對象時調(diào)用。JFrame frame = new JFrame("Main Frame");frame.setSize(400, 300);//創(chuàng)建一個JDialogDemo2的對象,直接調(diào)用JDialogDemo2的構(gòu)造方法,定義了窗體對象,標(biāo)題,和模式JDialogDemo2 dialogDemo = new JDialogDemo2(frame, "Dialog Title", true);}}
? ? ? ? ? ? ? ? ?相關(guān)解釋:
? ? ? ? ? ? ? ? ? ? ? ? 1.創(chuàng)建一個JDialogDemo2的構(gòu)造方法,其中括號中的內(nèi)容:第一個值為創(chuàng)建的JFrame對象,第二個值為對話框窗體的標(biāo)題,第三個為對話框窗體的模式(該參數(shù)為布爾值,確定是否為模態(tài))。
注:模態(tài)對話框是一種特殊類型的窗口,它阻止用戶與應(yīng)用程序中的其他窗口進(jìn)行交互,直到該對話框被關(guān)閉。這意味著在模態(tài)對話框打開期間,用戶無法將焦點切換到其他窗口或執(zhí)行其他操作。只有當(dāng)模態(tài)對話框關(guān)閉后,用戶才能繼續(xù)與應(yīng)用程序進(jìn)行交互。
? ? ? ? ? ? ? ? ? ? ? ? 2.setSize()方法:設(shè)置組件的寬和高。
setSize(250,100);
//寬250像素,高100像素
? ? ? ? ? ? ? ? ? ? ? ? 結(jié)果展示:?
?????????
? ? ? ? ? ? ? ? ? ? ? ? 3.創(chuàng)建一個main靜態(tài)方法:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)創(chuàng)建一個JFrame對象,方便在實例化JDialogDemo2有使用的JFrame對象使用。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)創(chuàng)建一個JDialogDemo2的對象,直接調(diào)用JDialogDemo2的構(gòu)造方法,定義了窗體對象,標(biāo)題,和模式。?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
2.實例展示及分析
? ? ? ? (1)實例介紹:窗體有按鈕可以彈出對話框,并且不處理該對話框,無法進(jìn)行其他操作。
? ? ? ? (2)代碼展示:?
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class JDialogDemo extends JDialog{public JDialogDemo(JFrame frame){/** 第一個參數(shù),父窗體對象* 第二個參數(shù),對話框標(biāo)題* 弟三個參數(shù),是否阻塞父窗體*/super(frame, "對話框標(biāo)題", true);//對話框阻塞父窗體Container c = getContentPane();c.add(new JLabel("這是一個對話框"));setBounds(100, 100, 100, 100); //設(shè)置窗體坐標(biāo)和大小}public static void main(String[] args) {JFrame frame = new JFrame("父窗體");frame.setBounds(50, 50, 300, 300);Container c = frame.getContentPane();JButton btn = new JButton("彈出對話框");c.setLayout(new FlowLayout()); //設(shè)置布局,使用流布局c.add(btn);frame.setVisible(true);frame.setDefaultCloseOperation(EXIT_ON_CLOSE);btn.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e){JDialogDemo d = new JDialogDemo(frame);d.setVisible(true);//對話框窗體可見,最好在靜態(tài)方法中使用(涉及到j(luò)ava語言的底層邏輯)}});//添加動作監(jiān)聽}
}
? ? ? ? (3)補(bǔ)充解釋:
? ? ? ? ? ? ? ? super關(guān)鍵字調(diào)用:調(diào)用了JDialog類的構(gòu)造方法,即?public JDialog(Frame f,String title,boolean modle) 。
????????????????流布局:流布局(Flow Layout)是一種在圖形用戶界面(GUI)中常用的布局管理器。它按照組件的添加順序,從左到右依次排列,并在水平方向上自動換行。 ? ? ? ?
運行結(jié)果:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ?點擊按鈕?
? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ?
????????? ? ? 由于設(shè)置為模態(tài)對話框,關(guān)閉對話框后,才能對父窗體進(jìn)行操作。
總結(jié)
????????以上就是對java語言中Swing程序設(shè)計中JDialog窗體的使用的介紹。技術(shù)內(nèi)容可能有所過時,適合在校新生學(xué)習(xí),歡迎補(bǔ)充指正,博主會及時進(jìn)行反饋。