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

JDialog 窗体是 Swing 组件中的对话框,它继承了 AWT 组件中 java.awt.Dialog 类。

JDialog 窗体的功能是从一个窗体中弹出另一个窗体,就像是在使用 IE 浏览器时弹出的确定对话框,一样。JDialog 实质上就是另一种类型的窗体,它与  JFrame 窗体类似,在使用时也需要调用 getContentPane() 方法将窗体转换为容器,然后在容器中设置窗体的属性。

下面是一个简单的实例:

import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;
/**
 * 1:JDialog窗体时Swing组件中的对话框,
 * JDialog的功能就是是从一个窗体中弹出另一个窗体,就像是在使用浏览器时弹出的确定对话框一样
 *
 * 2:JDialog窗体和JFrame窗体类似,在使用时也需要调用getContentPane()方法将
 * 窗体转化为容器,然后在容器中设置窗体的特性
 *
 * 3:JDialog有五种构造方法,可以用来指定标题,窗体,和模式的对话框
 * @author biexiansheng
 *
 */
public class JDialogTest extends JDialog{
  public JDialogTest(){
  //实例化一个JDialog类对象,指定对话框的父窗体,窗体标题和类型
  super();
  Container container=getContentPane();
  container.setBackground(Color.green);
  container.add(new JLabel("这是一个对话框"));
  setBounds(120,120,100,100);
 }
  public void MyFrame(){
  JFrame jf=new JFrame();//实例化JFrame对象
  Container container=jf.getContentPane();//将窗体转化为容器
  JButton jb=new JButton("弹出对话框");
  jb.setBounds(10, 10, 100, 20);//设置按钮的大小
  jb.addActionListener(new ActionListener() {
   //定义匿名内部类,这样才可以点击出现反应
   @Override
   public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    new JDialogTest().setVisible(true);;
   }
  });
  container.add(jb);//将按钮添加到容器中,这点非常重要,不然无法显示
  //设置容器的结构的特性
  jf.setTitle("这是窗体转化为容器");
  jf.setSize(200,200);//设置容器的大小
  jf.setVisible(true);//使窗体可见
  //设置窗体的关闭模式
  jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  JDialogTest jd=new JDialogTest();
  jd.MyFrame();
 }

}

再来看一个:

import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;
/**
 * 1:按钮JButton
 * @author biexiansheng
 *
 */
public class MyFrame extends JFrame {
 public void MyFrame(){
  JFrame jf=new JFrame();//实例化一个JFrame对象
  Container container=jf.getContentPane();//将窗体转化为容器
  //Container container=getContentPane();
  container.setLayout(null);
    JLabel jl=new JLabel("这是一个JFrame窗体");//在窗体中设置标签
  jl.setHorizontalAlignment(JLabel.CENTER);//将标签中的文字置于标签中间的位置
  container.add(jl);//将标签添加到容器中

  JButton jb=new JButton("点我");//实例化一个按钮属性
  jb.setBounds(20, 20,100, 50);
  jb.addActionListener(new ActionListener() {
   @Override
   public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    //使MyJDialog窗体可见
    new MyJDialog(MyFrame.this).setVisible(true);
   //上面一句话使对话框窗体可见,这样就实现了当用户单机该按钮后将弹出对话框的功能
   }
  });
  container.add(jb);//将按钮属性添加到容器中
  //设置容器里面的属性特点
  container.setBackground(Color.blue);
  //设置容器的框架结构特性
  jf.setTitle("这是一个容器");//设置容器的标题
  jf.setVisible(true);//设置容器可视化
  jf.setSize(450, 400);//设置容器的大小
  //设置容器的关闭方式
  jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  MyFrame fm=new MyFrame();
  fm.MyFrame();
 }
}
class MyJDialog extends JDialog{
 //本实例代码可以看到,JDialog窗体和JFrame窗体形式基本相同,甚至在设置窗体的特性
 //时调用的方法名称都基本相同,如设置窗体的大小,设置窗体的关闭状态等
 public MyJDialog(MyFrame frame){//定义一个构造方法
  //实例化一个JDialog类对象,指定对话框的父窗体,窗体标题,和类型
  super(frame,"第一个JDialog窗体",true);
  Container container=getContentPane();//创建一个容器
  container.add(new JLabel("这是一个对话框"));//在容器中添加标签
  container.setBackground(Color.green);
  setBounds(120,120,100,100);

 }
}

本实例可以看出,JDialog 窗体与 JFrame 窗体形式基本相同,甚至设置窗体的特性时调用的方法名称都基本相同,如设置窗体大小、窗体关闭状态等。

总结

以上是本文的全部内容,希望对大家有所帮助。

(0)

相关推荐

  • Java窗体居中显示的2种方法(实例讲解)

    第1种方法: //setSize(300, 200); pack(); // 得到显示器屏幕的宽.高 int width = Toolkit.getDefaultToolkit().getScreenSize().width; int height = Toolkit.getDefaultToolkit().getScreenSize().height; // 得到窗体的宽.高 int windowsWidth = this.getWidth(); int windowsHeight = thi

  • java实现jframe透明窗体示例

    复制代码 代码如下: import javax.swing.JFrame;public class TansluFrame extends JFrame{    public TansluFrame()    {        com.sun.awt.AWTUtilities.setWindowOpacity(this, 0.6f);       }    public static void main(String[] args)    {        TansluFrame frame =

  • java开发gui教程之jframe监听窗体大小变化事件和jframe创建窗体

    复制代码 代码如下: import java.awt.event.WindowEvent;import java.awt.event.WindowStateListener; import javax.swing.JFrame; public class WinFrame extends JFrame { public WinFrame(){  this.setName("Window 窗口状态");  this.setSize(300,300);  this.setDefaultCl

  • Java实现把窗体隐藏到系统托盘方法

    系统托盘也就是桌面右下角的图标.. 此程序实现的功能是点击窗体关闭按钮不退出程序,而是隐藏到系统托盘里面. 实质上也只是把窗体不可见了... import java.awt.AWTException; import java.awt.MenuItem; import java.awt.PopupMenu; import java.awt.SystemTray; import java.awt.TrayIcon; import java.awt.event.ActionEvent; import

  • Java Swing中的下拉式菜单(menu)、弹出式菜单(JPopupMenu)、选项卡窗体(JTabbedPane)组件使用案例

    菜单是GUI中最常用的组件,菜单不是Component类的子类,不能放置在普通容器中,不受布局管理器的约束,只能放置在菜单栏中. 菜单组件由菜单栏 (MenuBar).菜单(Menu)和菜单项(MenuItem)三部分组成. 一个菜单栏由若干个菜单组成,一个菜单又由若干个菜单项组成.一般菜单栏放 Frame 窗口中,只要调用 Frame 类的 setMenuBar()方法即可. 常用的菜单有:下拉式菜单和弹出式菜单(独立显示,可出现在任意地方). 一:下拉式菜单的创建步骤: 1.创建一个菜单栏.

  • JAVA Frame 窗体背景图片,首位相接滚动代码实例

    背景图片连续滚动,程序已经跑过.前提!背景图片宽度比窗体长些,代码如下: import Java.awt.Graphics; import java.awt.Image; import javax.swing.ImageIcon; import mine.game.util.PropertiesUtil; @SuppressWarnings("serial") public class GameFrame extends MyFrame{ private Image img=Image

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

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

  • 详解Java中Iterator迭代器的用法

    迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级"对象,因为创建它的代价小. Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator.第一次调用Iterator的next()方法时,它返回序列的第一个元素.注意:iterator()方法是java.lang.Iterable接口,被Collection继承

  • 详解Java编程中super关键字的用法

    通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全局变量.但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自己是否在用面向对象的思想编程,自己的程序是否是面向对象的. 好了,现在开始讨论this&super这两个关键字的意义和用法.在Java中,this通常指当前对象,super则指父类的.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当

  • 详解Java编程中JavaMail API的使用

    一.JavaMail API简介 JavaMail API是读取.撰写.发送电子信息的可选包.我们可用它来建立如Eudora.Foxmail.MS Outlook Express一般的邮件用户代理程序(Mail User Agent,简称MUA).而不是像sendmail或者其它的邮件传输代理(Mail Transfer Agent,简称MTA)程序那样可以传送.递送.转发邮件.从另外一个角度来看,我们这些电子邮件用户日常用MUA程序来读写邮件,而MUA依赖着MTA处理邮件的递送. 在清楚了到M

  • 详解Java编程中final,finalize,finally的区别

    final: final可以让你控制你的成员.方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中拥有了一个不可或缺的地位,也是学习Java时必须要知道和掌握的关键字之一. final成员 当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变.其初始化可以在两个地方,一是其定义处,二是在构造函数中,两者只能选其一. 下面程序很简单的演示了final的常规用

  • 详解Java编程中对线程的中断处理

    1. 引言 当我们点击某个杀毒软件的取消按钮来停止查杀病毒时,当我们在控制台敲入quit命令以结束某个后台服务时--都需要通过一个线程去取消另一个线程正在执行的任务.Java没有提供一种安全直接的方法来停止某个线程,但是Java提供了中断机制. 如果对Java中断没有一个全面的了解,可能会误以为被中断的线程将立马退出运行,但事实并非如此.中断机制是如何工作的?捕获或检测到中断后,是抛出InterruptedException还是重设中断状态以及在方法中吞掉中断状态会有什么后果?Thread.st

  • 举例详解Java编程中HashMap的初始化以及遍历的方法

    一.HashMap的初始化 1.HashMap 初始化的文艺写法    HashMap 是一种常用的数据结构,一般用来做数据字典或者 Hash 查找的容器.普通青年一般会这么初始化: HashMap<String, String> map = new HashMap<String, String>(); map.put("Name", "June"); map.put("QQ", "2572073701"

  • 详解Java编程中protected修饰符与static修饰符的作用

    protected 来谈谈protected访问权限问题.看下面示例1: Test.java class MyObject {} public class Test { public static void main(String[] args) { MyObject obj = new MyObject(); obj.clone(); // Compile error. } } 此时出现上文提到的错误:The method clone from the type Object is not v

  • 详解Java编程中Annotation注解对象的使用方法

    注解(也被称为元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便地使用这些数据.   1.基本语法 Java SE5内置三种标准注解 @Override:表示当前的方法定义将覆盖超类中的方法.如果你不小心拼写错误,或者方法签名对不上被覆 盖的方法,编译器就会发出错误提示 @Deprecated:如果程序员使用了注解为它的元素,那么编译器就会发出警告信息 @SupperessWarnings:关闭不当的编译器警告信息. Java SE5内置四种元注解 @Targ

  • 详解Java编程中对象的序列化

    1. 什么是Java对象序列化 Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长.但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象.Java对象序列化就能够帮助我们实现该功能. 使用Java对象序列化,在保存对象时,会把其状态保存为一组字节,在未来,再将这些字节组装成对象.必须注意地是,对象序列化保存的是对象的"状态",

随机推荐