Java的Dialog和FileDialog你知道啊

目录
  • Dialog
    • 牛刀小试01
    • 牛刀小试02
  • FileDialog
    • 牛刀小试
  • 总结

Dialog

Dialog 是Window类的子类,是一个容器类,属于特殊组件。对话框是可以独立存在的顶级窗口,因此用法与普通窗口的用法几乎完全—样,但是使用对话框需要注意下面两点∶

  • 对话框通常依赖于其他窗口,就是通常需要有一个父窗口;
  • 对话框有非模式(non-modal)和 模式 (modal)两种,当某个模式对话框被打开后,该模式对话框总是位于它的父窗口之上,在模式对话框被关闭之前,父窗口无法获得焦点。

API

牛刀小试01

效果展示

代码展示    

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class DialogDemo1 {
    public static void main(String[] args) {
        Frame frame = new Frame("这里测试Dialog");
        //创建对话框Dialog对象,一个模式的,一个非模式的
        //主窗口不能操作
        Dialog d1 = new Dialog(frame,"模式对话框",true);
        //主窗口和子窗口都能操作
        Dialog d2 = new Dialog(frame,"非模式对话框",false);
        //通过setBounds方法设置Dialog的位置以及大小
        d1.setBounds(20,30,300,200);
        d1.setBounds(20,30,300,200);
        //创建两个按钮
        Button b1 = new Button("打开模式对话框");
        Button b2 = new Button("打开非模式对话框");
        //需要给这两个按钮添加点击后的行为
        b1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                d1.setVisible(true);
            }
        });
        b2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                d2.setVisible(true);
            }
        });
        //把按钮添加到frame中
        frame.add(b1,BorderLayout.NORTH);
        frame.add(b2);
        //设置大小可见
        frame.pack();
        frame.setVisible(true);
    }
}

注意:

  • 你会发现关闭不了窗口,没关系,只是没有设置Windows点击事件,后面的博文会讲到哦!
  • 模式窗口 true 简单理解就是只能点弹出来的那个~
  • 非模式窗口 false 就是所有界面都能点~
  • 乱码问题(戳我查看)

牛刀小试02

效果展示

代码展示     

public class DialogDemo2 {
    public static void main(String[] args) {
        Frame frame = new Frame("这里测试Dialog");
        //创建对话框Dialog对象,一个模式的,一个非模式的
        Dialog d1 = new Dialog(frame,"模式对话框",true);
        //创建一个垂直的Box容器,把一个文本框和一个按钮加入Box容器中
        Box vBox = Box.createVerticalBox();
        vBox.add(new TextField(20));
        vBox.add(new Button("确认"));
        //把Box容器加到Dialog中
        d1.add(vBox);
        //通过setBounds方法设置Dialog的位置以及大小
        d1.setBounds(20,30,300,200);
        //创建一个按钮
        Button b1 = new Button("打开模式对话框");
        //需要给这两个按钮添加点击后的行为
        b1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                d1.setVisible(true);
            }
        });
        //把按钮添加到frame中
        frame.add(b1,BorderLayout.NORTH);
        frame.pack();
        frame.setVisible(true);
    }
}

FileDialog

Dialog类还有一个子类:FileDialog,它代表一个文件对话框,用于打开或者保存文件,需要注意的是FileDialo:无法指定模态或者非模态,这是因为 FileDialog 依赖于运行平台的实现,如果运行平台的文件对话框是模态的那么 FileDialog  也是模态的;否则就是非模态的。

API

牛刀小试

效果展示

代码展示

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class FileDialogTest {
    public static void main(String[] args) {
        Frame frame = new Frame("这里测试FileDialog");
        //创建两个FileDialog对象
        FileDialog f1 = new FileDialog(frame,"选择要打开的文件",FileDialog.LOAD);
        FileDialog f2 = new FileDialog(frame,"选择要保存的路径",FileDialog.SAVE);
        //创建两个按钮
        Button b1 = new Button("打开文件");
        Button b2 = new Button("保存文件");
        //给这两个按钮设置点击后的行为,获取打开或者保存的路径文件名
        b1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                f1.setVisible(true);//代码会阻塞到这里
                //获取选择的路径和文件
                String directory = f1.getDirectory();
                String file = f1.getFile();
                System.out.println("打开的文件路径为:"+directory);
                System.out.println("打开的文件名称为:"+file);
            }
        });
        b2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                f2.setVisible(true);//代码会阻塞到这里
                //获取选择的路径和文件
                String directory = f2.getDirectory();
                String file = f2.getFile();
                System.out.println("保存的文件路径为:"+directory);
                System.out.println("保存的文件名称为:"+file);
            }
        });
        //把按钮添加到Frame中
        frame.add(b1,BorderLayout.NORTH);
        frame.add(b2);
        //设置大小,可见
        frame.pack();
        frame.setVisible(true);
    }
}

注意:

  • 解决乱码
  • 这里的事件监听下一篇博文会讲到,不要担心哦~

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • CFileDialog的钩子函数解决对话框的多选之DoModal问题

    前几天领导问我一个问题:就是使用CFileDialog类在设置多选时选中的文件所放的文件缓冲区不知设置多大合适,设置小了DoModal返回为失败, 通过CommDlgExtendedError函数获取错误码为FNERR_BUFFERTOOSMALL(即缓冲区太小),设置大了又浪费内存.(我们 一次要选几百个文件,实在不知设置多大合适). 我谈了我的思路:CFileDialog的数据成员m_ofn有一个数据成员为钩子函数指针,通过设置这个函数,可以勾取CFileDialog的相关消 息,比如用户改

  • 详解Java编程JDialog窗体的用法及实例

    JDialog 窗体是 Swing 组件中的对话框,它继承了 AWT 组件中 java.awt.Dialog 类. JDialog 窗体的功能是从一个窗体中弹出另一个窗体,就像是在使用 IE 浏览器时弹出的确定对话框,一样.JDialog 实质上就是另一种类型的窗体,它与  JFrame 窗体类似,在使用时也需要调用 getContentPane() 方法将窗体转换为容器,然后在容器中设置窗体的属性. 下面是一个简单的实例: import java.awt.Color; import java.

  • C#中OpenFileDialog和PictrueBox的用法分析

    本文实例讲述了C#中OpenFileDialog和PictrueBox的用法.分享给大家供大家参考.具体用法分析如下: 先来看看这段代码: 复制代码 代码如下: string resultFile = ""; OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.InitialDirectory = "D:\\Patch"; openFileDialog1.Filter = &q

  • CFileDialog设置多选的问题解决

    他的代码大致如下: static TCHAR BASED_CODE szFilter[] = _T(&TXT(*.txt)|*.txt||&); CFileDialog dlg(TRUE,_T(&txt&), NULL,OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT, szFilter, NULL ); INT_PTR nResult = dlg.DoModal(); 我测试了一下,选择比较多txt文件时,确实如他所言,会出现返回值是IDCANC

  • C# SaveFileDialog与OpenFileDialog用法案例详解

    1.OpenFileDialog private void btnOpen_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.InitialDirectory = @"C:\Users\LWP1398\Desktop"; //设置初始路径 ofd.Filter = "Excel文件(*.xls)|*.xls|Csv文件(*.csv)|*.csv|所有文件(*.*

  • C#开发Winform控件之打开文件对话框OpenFileDialog类

    OpenFileDialog类提供了用户打开文件的功能,它有如下属性: 属性 InitialDirectory:设置对话框的初始目录. Filter: 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*". FilterIndex: 在对话框中选择的文件筛选器的索引,如果选第一项就设为1. RestoreDirectory: 控制对话框在关闭之前是否恢复当前目录. FileName:第一个在对话框中显示的文件或最后一个选取的文件. T

  • Java Swing中JDialog实现用户登陆UI示例

    本文实例讲述了Java Swing中JDialog实现用户登陆UI.分享给大家供大家参考,具体如下: JDialog是一种对话框组件,它常常与JOptionPane配合使用.JOptionPane提供对话框内部的消息.按钮等内容,JDialog提供对话框窗体,提供模态/非模态等属性.JDialog与JFrame在外观上的区别在于,它没有最大化/最小化按钮.如下图所示: JDialog窗体 点击File->connect之后弹出登陆窗口: JFrame窗体 在下面的demo中,演示了JDialog

  • Java的Dialog和FileDialog你知道啊

    目录 Dialog 牛刀小试01 牛刀小试02 FileDialog 牛刀小试 总结 Dialog Dialog 是Window类的子类,是一个容器类,属于特殊组件.对话框是可以独立存在的顶级窗口,因此用法与普通窗口的用法几乎完全—样,但是使用对话框需要注意下面两点∶ 对话框通常依赖于其他窗口,就是通常需要有一个父窗口; 对话框有非模式(non-modal)和 模式 (modal)两种,当某个模式对话框被打开后,该模式对话框总是位于它的父窗口之上,在模式对话框被关闭之前,父窗口无法获得焦点. A

  • Java运用SWT插件编写桌面记事本应用程序

    本文实例介绍了Java基于SWT编写记事本的详细过程,分享给大家供大家参考,具体内容如下 可实现windows系统桌面记事本基本功能,傻瓜式教学,一步一步手把手操作.小白也可自己编写出完整的应用程序. 需要工具:Eclipse(带SWT插件) 成品如下: 应用程序功能介绍: 功能分析: 1.文件(F) 2.编辑(E) 3.格式(O) 4.查看(V) 5.帮助(H) 其中文件菜单中包括 1.1.新建(N) Ctrl+N 1.2打开(O) Ctrl+O 1.3保存(S) Ctrl+S 1.4另存为(

  • Java awt-对话框简单实现方式

    目录 Java awt-对话框简单实现 Java awt Dialog(对话框)学习 对话框有如下两点需要注意 对话框有多个重载构造器 FileDialog提供了两个方法来获取被打开/保存文件的路径 Java awt-对话框简单实现 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class dia { public static void main(String args[]) { JButton

  • Java聊天室之实现使用Socket传递音频

    目录 一.题目描述 二.解题思路 三.代码详解 多学一个知识点 一.题目描述 题目实现:使用网络编程时,需要通过Socket传递音频文件. 二.解题思路 创建一个服务器类:ServerSocketFrame,继承JFrame类 写一个getserver() 方法,实例化Socket对象,启用9527当服务的端口. 创建输入流对象,用来接收客户端信息. 再定义一个getClientInfo()方法,用于接收客户端发送的音频文件. 创建一个客户端类:ClientSocketFrame,继承JFram

  • java版数独游戏界面实现(二)

    本文实例为大家分享了java版数独游戏界面实现的具体代码,供大家参考,具体内容如下 实现效果图: 这里写图片描述 主函数用于启动程序: package hlc.shudu.app; import hlc.shudu.src.ShuduHelper; import hlc.shudu.ui.ShuduMainFrame; public class AppStart { public static void main(String[] args) { ShuduMainFrame mainFrame

  • java+SQL server2008学生信息管理系统源码

    本文实例为大家分享了java学生信息管理系统源码的具体代码,供大家参考,具体内容如下 1.StudetManage类(主界面) package com.sms3; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class StudentManage extends JFrame implements ActionListener { /** * @param args */ public stat

  • Java GUI编程实现在线聊天室

    引言 综合应用Java的GUI编程和网络编程,实现一个能够支持多组用户同时使用的聊天室软件.该聊天室具有比较友好的GUI界面,并使用C/S模式,支持多个用户同时使用,用户可以自己选择加入或者创建房间,和房间内的其他用户互发信息(文字和图片) 主要功能 客户端的功能主要包括如下的功能: 选择连上服务端 显示当前房间列表(包括房间号和房间名称) 选择房间进入 多个用户在线群聊 可以发送表情(用本地的,实际上发送只发送表情的代码) 退出房间 选择创建房间 房间里没人(房主退出),导致房间解散 显示系统

  • java实现猜数字游戏

    本文实例为大家分享了java实现猜数字游戏的具体代码,供大家参考,具体内容如下 游戏规则: 通常由两个人玩,一方出数字,一方猜.出数字的人要想好一个没有重复数字的4位数,不能让猜的人知道.猜的人就可以开始猜.每猜一个数字,出数者就要根据这个数字给出几A几B,其中A前面的数字表示数字正确位置也正确的数的个数,而B前的数字表示数字正确而位置不对的数的个数. 如正确答案为 5234,而猜的人猜 5346,则是 1A2B,其中有一个5的位置对了,记为1A,而3和4这两个数字对了,而位置没对,因此记为 2

  • Java Swing最详细基础知识总结

    一.简介 Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT更好的屏幕显示元素.它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT.它们是JFC的一部分.它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们.这意味着你可以在任意平台上使用JAVA支持的任意面板.轻量级

随机推荐