最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java?awt-對(duì)話框簡(jiǎn)單實(shí)現(xiàn)方式

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

Java awt-對(duì)話框簡(jiǎn)單實(shí)現(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(對(duì)話框)學(xué)習(xí)

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

對(duì)話框有如下兩點(diǎn)需要注意

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

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

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

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

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

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

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

/**
 * 程序示范了模式對(duì)話框和非模式對(duì)話框的用法
 */
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("測(cè)試");
	Dialog d1 = new Dialog(f, "模式對(duì)話框", true);
	Dialog d2 = new Dialog(f, "非模式對(duì)話框", false);
	Button b1 = new Button("打開(kāi)模式對(duì)話框");
	Button b2 = new Button("打開(kāi)非模式對(duì)話框");
 
	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兩個(gè)對(duì)話框,其中d1是一個(gè)模式對(duì)話框,而d2是一個(gè)非模式對(duì)話框(兩個(gè)對(duì)話框都是空的)。該窗口中還提供了兩個(gè)按鈕,分別用于打開(kāi)模式對(duì)話框和非模式對(duì)話框。打開(kāi)模式對(duì)話框后鼠標(biāo)無(wú)法激活原來(lái)的”測(cè)試窗口“;但打開(kāi)非模式對(duì)話框后還可以激活原來(lái)的”測(cè)試窗口“。

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

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

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

FileDialog不能指定是模式對(duì)話框或非模式對(duì)話框,因?yàn)镕ileDialog依賴于運(yùn)行平臺(tái)的實(shí)現(xiàn),如果運(yùn)行平臺(tái)的文件對(duì)話框是模式的,那么FileDialog也是模式的;否則就是非模式的。

FileDialog提供了兩個(gè)方法來(lái)獲取被打開(kāi)/保存文件的路徑

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

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

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, "選擇需要打開(kāi)的文件", FileDialog.LOAD);
	FileDialog d2 = new FileDialog(f, "選擇需要保存文件的路徑", FileDialog.SAVE);
	Button b1 = new Button("打開(kāi)文件");
	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();
	} 
}

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

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

相關(guān)文章

  • Spring Cloud Gateway內(nèi)置的斷言和過(guò)濾器作用說(shuō)明

    Spring Cloud Gateway內(nèi)置的斷言和過(guò)濾器作用說(shuō)明

    這篇文章主要介紹了Spring Cloud Gateway內(nèi)置的斷言和過(guò)濾器作用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • SpringSecurity登錄使用JSON格式數(shù)據(jù)的方法

    SpringSecurity登錄使用JSON格式數(shù)據(jù)的方法

    這篇文章主要介紹了SpringSecurity登錄使用JSON格式數(shù)據(jù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • SpringCloud-Spring?Boot?Starter使用測(cè)試及問(wèn)題小結(jié)

    SpringCloud-Spring?Boot?Starter使用測(cè)試及問(wèn)題小結(jié)

    Spring?Boot?Starter?是在?SpringBoot?組件中被提出來(lái)的一種概念、簡(jiǎn)化了很多煩瑣的配置、通過(guò)引入各種?Spring?Boot?Starter?包可以快速搭建出一個(gè)項(xiàng)目的腳手架,這篇文章主要介紹了SpringCloud-Spring?Boot?Starter使用測(cè)試,需要的朋友可以參考下
    2022-07-07
  • java轉(zhuǎn)換時(shí)區(qū)時(shí)間過(guò)程詳解

    java轉(zhuǎn)換時(shí)區(qū)時(shí)間過(guò)程詳解

    這篇文章主要介紹了java轉(zhuǎn)換時(shí)區(qū)時(shí)間過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 自己手寫(xiě)Mybatis通用batchInsert問(wèn)題

    自己手寫(xiě)Mybatis通用batchInsert問(wèn)題

    這篇文章主要介紹了自己手寫(xiě)Mybatis通用batchInsert問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • java對(duì)接Modbus協(xié)議代碼示例

    java對(duì)接Modbus協(xié)議代碼示例

    Modbus是一種串行通信協(xié)議,Modbus已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議的業(yè)界標(biāo)準(zhǔn),并且現(xiàn)在是工業(yè)電子設(shè)備之間常用的連接方式,這篇文章主要給大家介紹了關(guān)于java對(duì)接Modbus協(xié)議的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • 淺談Maven安裝及環(huán)境配置出錯(cuò)的解決辦法

    淺談Maven安裝及環(huán)境配置出錯(cuò)的解決辦法

    這篇文章主要介紹了淺談Maven安裝及環(huán)境配置出錯(cuò)的解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java實(shí)現(xiàn)WebSocket四個(gè)步驟

    Java實(shí)現(xiàn)WebSocket四個(gè)步驟

    這篇文章主要為大家介紹了Java實(shí)現(xiàn)WebSocket的方法實(shí)例,只需要簡(jiǎn)單四個(gè)步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • SpringBoot2.6.x升級(jí)后循環(huán)依賴及Swagger無(wú)法使用問(wèn)題

    SpringBoot2.6.x升級(jí)后循環(huán)依賴及Swagger無(wú)法使用問(wèn)題

    這篇文章主要為大家介紹了SpringBoot2.6.x升級(jí)后循環(huán)依賴及Swagger無(wú)法使用問(wèn)題,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • JDBC實(shí)現(xiàn)Mysql自動(dòng)重連機(jī)制的方法詳解

    JDBC實(shí)現(xiàn)Mysql自動(dòng)重連機(jī)制的方法詳解

    最近在工作中發(fā)現(xiàn)了一個(gè)問(wèn)題,通過(guò)查找相關(guān)的資料終于解決了,下面這篇文章主要給大家介紹了關(guān)于JDBC實(shí)現(xiàn)Mysql自動(dòng)重連機(jī)制的相關(guān)資料,文中給出多種解決的方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-07-07

最新評(píng)論

邵阳市| 金塔县| 建宁县| 胶南市| 休宁县| 荣昌县| 米脂县| 钦州市| 玉龙| 宁阳县| 盱眙县| 岑溪市| 浑源县| 新郑市| 八宿县| 香港| 色达县| 新竹市| 鄄城县| 清镇市| 棋牌| 清水河县| 拜城县| 同心县| 新宾| 宣武区| 买车| 朔州市| 顺义区| 富川| 腾冲县| 黔江区| 云梦县| 老河口市| 建宁县| 家居| 紫阳县| 扶沟县| 桐乡市| 沧州市| 平利县|