欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java?awt-對話框簡單實現(xiàn)方式

 更新時間:2021年12月04日 11:36:13   作者:xiaoyao_zhang  
這篇文章主要介紹了Java?awt-對話框簡單實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Java awt-對話框簡單實現(xiàn)

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class dia
{
	public static void main(String args[])
	{
		JButton btn1=new JButton("modal");
		JButton btn2=new JButton("unmodal");
		JFrame f=new JFrame("DIaloDemo");
		f.setSize(300,400);
		f.setLocation(300,200);
		f.setLayout(new FlowLayout());
		f.add(btn1);
		f.add(btn2);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setVisible(true);
 
		final JLabel label=new JLabel();
		final JDialog dialog=new JDialog(f,"Dialog");
		dialog.setSize(220,150);
		dialog.setLocation(350,250);
		dialog.setLayout(new FlowLayout()); 
		final JButton btn3=new JButton("sure");
		dialog.add(btn3);
		
		btn1.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				dialog.setModal(true);
				if(dialog.getComponents().length==1){
					dialog.add(label);
				}
				label.setText("modal dialog,click to close");
				dialog.setVisible(true);
			}
		});
 
		
		btn2.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				dialog.setModal(false);
				if(dialog.getComponents().length==1){
					dialog.add(label);
				}
				label.setText("unmodal dialog,click to close");
				dialog.setVisible(true);
			}
		});
 
		
		btn3.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				dialog.dispose();
			}
		}); 
	}
}

Java awt Dialog(對話框)學(xué)習(xí)

Dialog是Window類的子類,是一個容器類,屬于特殊組件。對話框是可以獨立存在的頂級窗口,因此用法與普通窗口的用法幾乎完全一樣。

對話框有如下兩點需要注意

(1)對話框通常依賴于其他窗口,就是通常有一個parent窗口

(2)對話框有非模式(non-modal)和模式(modal)兩種,當(dāng)某個模式對話框被打開之后,該模式對話框總是位于它依賴的窗口之上;在模式對話框被關(guān)閉之前,它依賴的窗口無法獲得焦點

對話框有多個重載構(gòu)造器

它的構(gòu)造器可能有如下3個參數(shù):

(1)owner:指定該對話框所依賴的窗口,既可以是窗口,也可以是對話框。

(2)title:指定該對話框的窗口標(biāo)題

(3)modal:指定該對話框是否是模式的,true貨false

/**
 * 程序示范了模式對話框和非模式對話框的用法
 */
package codes11; 
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
public class DialogTest { 
	Frame f = new Frame("測試");
	Dialog d1 = new Dialog(f, "模式對話框", true);
	Dialog d2 = new Dialog(f, "非模式對話框", false);
	Button b1 = new Button("打開模式對話框");
	Button b2 = new Button("打開非模式對話框");
 
	public void init() {
		d1.setBounds(20, 30, 300, 400);
		d2.setBounds(20, 30, 300, 400);
		b1.addActionListener(new ActionListener() {
 
			@Override
			public void actionPerformed(ActionEvent arg0) {
				d1.setVisible(true);
			}
		});
		b2.addActionListener(new ActionListener() {
 
			@Override
			public void actionPerformed(ActionEvent arg0) {
				d2.setVisible(true);
			}
		});
		f.add(b1);
		f.add(b2, BorderLayout.SOUTH);
		f.pack();
		f.setVisible(true);
	}
 
	public static void main(String[] args) {
		new DialogTest().init();
	} 
}

上面程序創(chuàng)建了d1和d2兩個對話框,其中d1是一個模式對話框,而d2是一個非模式對話框(兩個對話框都是空的)。該窗口中還提供了兩個按鈕,分別用于打開模式對話框和非模式對話框。打開模式對話框后鼠標(biāo)無法激活原來的”測試窗口“;但打開非模式對話框后還可以激活原來的”測試窗口“。

運行程序,結(jié)果如下圖:

不管是模式對話框還是非模式對話框,打開后都無法關(guān)閉它們,因為程序沒有為這兩個對話框?qū)懯录O(jiān)聽器。如果主程序需要對話框里接收的輸入值,則應(yīng)該把對話框設(shè)置成模式對話框,因為模式對話框會阻塞該程序;如果把對話框設(shè)置成非模式對話框,則可能造成對話框被打開了,但用于并沒有操作該對話框,也沒有向?qū)υ捒蚶镞M行輸入,這就會引起主程序的異常。

Dialog類還有一個子類:FileDialog,它代表一個文件對話框,用于打開或者保存文件。FileDialog也提供了幾個構(gòu)造器,可分別支持parent、title和mode三個構(gòu)造參數(shù),其中parent、title指定文件對話框的所屬父窗口和標(biāo)題;而mode指定該窗口用于打開文件或保存文件,該參數(shù)支持如下兩個參數(shù)值:FileDialog.LOAD、FileDialog.SAVE。

FileDialog不能指定是模式對話框或非模式對話框,因為FileDialog依賴于運行平臺的實現(xiàn),如果運行平臺的文件對話框是模式的,那么FileDialog也是模式的;否則就是非模式的。

FileDialog提供了兩個方法來獲取被打開/保存文件的路徑

(1)getDirectory():獲取FileDialog被打開/保存文件的絕對路徑

(2)getFile():獲取FileDialog被打開/保存文件的文件名

package codes11; 
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
public class FileDialogTest { 
	Frame f = new Frame("Test");
	FileDialog d1 = new FileDialog(f, "選擇需要打開的文件", FileDialog.LOAD);
	FileDialog d2 = new FileDialog(f, "選擇需要保存文件的路徑", FileDialog.SAVE);
	Button b1 = new Button("打開文件");
	Button b2 = new Button("保存文件");
 
	public void init() {
		b1.addActionListener(new ActionListener() { 
			@Override
			public void actionPerformed(ActionEvent arg0) {
				d1.setVisible(true);
				System.out.println(d1.getDirectory() + d1.getFile());
			}
		});
		b2.addActionListener(new ActionListener() {
 
			@Override
			public void actionPerformed(ActionEvent arg0) {
				d2.setVisible(true);
				System.out.println(d2.getDirectory() + d2.getFile());
			}
		});
		f.add(b1);
		f.add(b2, BorderLayout.SOUTH);
		f.pack();
		f.setVisible(true);
	}
 
	public static void main(String[] args) {
		new FileDialogTest().init();
	} 
}

運行程序,結(jié)果如下圖:

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決mapstruct在eclipse生成不了mapper的實現(xiàn)類問題

    解決mapstruct在eclipse生成不了mapper的實現(xiàn)類問題

    這篇文章主要介紹了解決mapstruct在eclipse生成不了mapper的實現(xiàn)類問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • AntDesign封裝全局異常處理全局攔截器

    AntDesign封裝全局異常處理全局攔截器

    這篇文章主要為大家介紹了AntDesign封裝全局異常處理全局攔截器,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Java 實戰(zhàn)項目錘煉之在線蛋糕商城系統(tǒng)的實現(xiàn)

    Java 實戰(zhàn)項目錘煉之在線蛋糕商城系統(tǒng)的實現(xiàn)

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+jsp+jdbc+mysql實現(xiàn)一個在線蛋糕商城系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • Java如何獲取Cookie和Session

    Java如何獲取Cookie和Session

    Cookie?和?Session之間主要是通過?SessionId?關(guān)聯(lián)起來的,?SessionId是?Cookie?和?Session?之間的橋梁,這篇文章主要介紹了Java獲取Cookie和Session的方法,需要的朋友可以參考下
    2024-01-01
  • Java中空指針異常該如何避免詳解

    Java中空指針異常該如何避免詳解

    空指針(Null Pointer Exception,NPE)是Java中最常見不過的異常了,其原因雖然顯而易見,但是開發(fā)人員往往會忽略,或未能及時采取措施,下面這篇文章主要給大家介紹了關(guān)于Java中空指針異常該如何避免的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 基于JDK8-lambda表達式四種forEach性能對比

    基于JDK8-lambda表達式四種forEach性能對比

    這篇文章主要介紹了基于JDK8-lambda表達式四種forEach性能對比,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java中的觀察者模式實例講解

    Java中的觀察者模式實例講解

    這篇文章主要介紹了Java中的觀察者模式實例講解,本文先是講解了觀察者模式的概念,然后以實例講解觀察者模式的實現(xiàn),以及給出了UML圖,需要的朋友可以參考下
    2014-12-12
  • Java實現(xiàn)簡單的socket通信教程

    Java實現(xiàn)簡單的socket通信教程

    這篇文章主要介紹了Java實現(xiàn)簡單的socket通信教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • java程序員必會的遠程debug教程

    java程序員必會的遠程debug教程

    這篇文章主要為大家介紹了java程序員必會的遠程debug教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Base64加解密的實現(xiàn)方式實例詳解

    Base64加解密的實現(xiàn)方式實例詳解

    這篇文章主要介紹了Base64加解密的實現(xiàn)方式實例詳解的相關(guān)資料,這里提供了實現(xiàn)實例,幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08

最新評論