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 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(对话框)学习

Dialog是Window类的子类,是一个容器类,属于特殊组件。对话框是可以独立存在的顶级窗口,因此用法与普通窗口的用法几乎完全一样。

对话框有如下两点需要注意

(1)对话框通常依赖于其他窗口,就是通常有一个parent窗口

(2)对话框有非模式(non-modal)和模式(modal)两种,当某个模式对话框被打开之后,该模式对话框总是位于它依赖的窗口之上;在模式对话框被关闭之前,它依赖的窗口无法获得焦点

对话框有多个重载构造器

它的构造器可能有如下3个参数:

(1)owner:指定该对话框所依赖的窗口,既可以是窗口,也可以是对话框。

(2)title:指定该对话框的窗口标题

(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();
	}
}

上面程序创建了d1和d2两个对话框,其中d1是一个模式对话框,而d2是一个非模式对话框(两个对话框都是空的)。该窗口中还提供了两个按钮,分别用于打开模式对话框和非模式对话框。打开模式对话框后鼠标无法激活原来的”测试窗口“;但打开非模式对话框后还可以激活原来的”测试窗口“。

运行程序,结果如下图:

不管是模式对话框还是非模式对话框,打开后都无法关闭它们,因为程序没有为这两个对话框写事件监听器。如果主程序需要对话框里接收的输入值,则应该把对话框设置成模式对话框,因为模式对话框会阻塞该程序;如果把对话框设置成非模式对话框,则可能造成对话框被打开了,但用于并没有操作该对话框,也没有向对话框里进行输入,这就会引起主程序的异常。

Dialog类还有一个子类:FileDialog,它代表一个文件对话框,用于打开或者保存文件。FileDialog也提供了几个构造器,可分别支持parent、title和mode三个构造参数,其中parent、title指定文件对话框的所属父窗口和标题;而mode指定该窗口用于打开文件或保存文件,该参数支持如下两个参数值:FileDialog.LOAD、FileDialog.SAVE。

FileDialog不能指定是模式对话框或非模式对话框,因为FileDialog依赖于运行平台的实现,如果运行平台的文件对话框是模式的,那么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();
	}
}

运行程序,结果如下图:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • java swing标准对话框具体实现

    复制代码 代码如下: package test001;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JToolBar;public class TestJOptionPane implements

  • java GUI界面初步入门示例【AWT包】

    本文实例讲述了java GUI界面.分享给大家供大家参考,具体如下: Java不太擅长做图形界面: AWT是一种较老的包,最新的是Swing包,由于其包内调用了一部分的操作系统的内容,所以无法做到完全的跨平台. 对于每一个图形元素都是一个component类,其包含container,container是一个component,同时他又作为component的一个容器类,又可以存放component.在container中还有window和panel两种类,其中window类是独立的,可以直接显

  • 使用Java编写GUI对话框的教程

    对话框是为了人机对话过程提供交互模式的工具.应用程序通过对话框,或给用户提供信息,或从用户获得信息.对话框是一个临时窗口,可以在其中放置用于得到用户输入的控件.在Swing中,有两个对话框类,它们是JDialog类和JOptionPane类.JDialog类提供构造并管理通用对话框:JOptionPane类给一些常见的对话框提供许多便于使用的选项,例如,简单的"yes-no"对话框等. JDialog类 JDialog类作作对话框的基类.对话框与一般窗口不同,对话框依赖其他窗口,当它所

  • 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

  • Ubuntu安装java的最简单的命令行方式(推荐)

    由于经常要安装java,因此 深受其烦! 分为两部: 1. sudo apt-get install openjdk-7-jdk 2. sudo vim /etc/environment 然后把下面的复制过去 : JAVA_HOME="/usr/lib/jvm/java-1.7.0-openjdk-amd64>" 3.source /etc/environment 以上所述是小编给大家介绍的Ubuntu安装java的最简单的命令行方式,希望对大家有所帮助,如果大家有任何疑问请给我

  • 使用Java制作一个简单的记事本

    通过使用Java的Swing.IO来实现一个简单记事本,实现打开指定的text文本文件,然后将text文件的内容加载到Swing组件中,然后在Swing组件中编辑记事本内容,然后同菜单的保存选项将编辑后的内容保存到text文件中.代码如下: 复制代码 代码如下: import java.io.*; import java.nio.*; import java.nio.channels.*; import java.nio.charset.*; import java.awt.*; import

  • java修改JFrame默认字体方式

    目录 java修改JFrame默认字体 JFrame基本参数设置 java修改JFrame默认字体 修改默认字体的方法很简单.首先我们随便写一个按钮出来: import javax.swing.*; public class Test{ static final int WIDTH = 300; static final int HEIGHT = 200; public static void main(String[] args){ JFrame jf = new JFrame(); jf.s

  • java awt生成签名图片如何消除锯齿化

    目录 awt生成签名图片如何消除锯齿化 项目场景 问题描述 解决方案 AWT,SWT缩小图片消除锯齿的平滑处理 缩小一副图片最常见的方法 awt生成签名图片如何消除锯齿化 项目场景 在一个线上互联网医院中,需要生成电子处方图片,图片里面会有医生的手写签名.通过java.awt的Graphics2D方式来生成处方图片,并将手写签名的图片导入其中. 问题描述 但是在签名图片导入后,就可以看到明显的锯齿. 具体导入图片代码: g2.drawImage(getImage("https://xx.jpg&

  • Java语言实现简单FTP软件 FTP软件主界面(4)

    首先看一下FTP软件的整体代码框架,具体内容如下 1.首先介绍程序的主入口FTPMain.java,采用了一个漂亮的外观风格 package com.oyp.ftp; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.UIManager; import com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel; public class F

  • java解析XML几种方式小结

    java解析XML几种方式小结 第一种:DOM. DOM的全称是Document Object Model,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作.通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM接口的机制也被称作随机访问机制. DOM接口提供了一种通过分层对象模型来访问XML文档信息的方式,这些分层对象模型依

  • java编写的简单移动方块小游戏代码

    本文实例讲述了java编写的简单移动方块小游戏代码.分享给大家供大家参考,具体如下: 运行效果截图如下: 第一次用java编写图形化的界面,还是有些青涩..以后继续努力!!具体代码如下: //Little Box Game by AlexYui //Game.java By 1093710210@ HIT import javax.swing.*; import java.awt.event.*; import java.awt.geom.*; import java.awt.*; import

  • Java语言实现简单FTP软件 FTP上传下载管理模块实现(11)

    本文为大家分享了FTP上传下载管理模块的实现方法,供大家参考,具体内容如下 1.上传本地文件或文件夹到远程FTP服务器端的功能. 当用户在本地文件列表中选择想要上传的文件后,点击上传按钮,将本机上指定的文件上传到FTP服务器当前展现的目录,下图为上传子模块流程图 选择好要上传的文件或文件夹,点击"上传"按钮,会触发com.oyp.ftp.panel.local.UploadAction类的actionPerformed(ActionEvent e)方法,其主要代码如下 /** * 上传

  • android几种不同对话框的实现方式

    app中肯定是少不了与用户交互的各种dialog,下面给大家介绍几种提示框的提示. 一般创建一个对话框需要经过以下几步: 1.创建AlertDialog.Builder对象. 2.调用AlertDialog.Builder的setTitle()或者setCustomTitle()方法设置标题. 3.调用AlertDialog.Builder的setIcon()方法设置标题logo. 4.调用AlertDialog.Builder的相关方法设置对话框内容. 5.调用AlertDialog.Buil

随机推荐