Java swing——创建对话框JDialog

之前我们讲了怎么建立一个简易的窗口,链接:http://t.csdnimg.cn/l7QSs,接下来继续讲解窗口的进阶。


对话框

上一篇文章中我们讲到了JFrame是一种顶层容器,本文接下来介绍其余的顶层容器。

  • 跟JFrame一样,,这几个顶层容器都是抽象类。

  • 以下是这几个顶层容器的构造方法:

    • JFrame:

      JFrame() // 创建一个无标题的窗口
      JFrame(String title) // 创建一个指定标题的窗口

    • JApplet:

      JApplet() // 创建一个新的JApplet

    • JDialog:

      JDialog() // 创建一个无标题的对话框
      JDialog(Frame owner) // 创建一个指定所有者的对话框
      JDialog(Dialog owner) // 创建一个指定所有者的对话框
      JDialog(Frame owner, String title) // 创建一个指定所有者和标题的对话框
      JDialog(Dialog owner, String title) // 创建一个指定所有者和标题的对话框

    • JWindow:

      JWindow() // 创建一个无标题的窗口

  • 并且JFrame的各种设置方法大部分都适用于这几个顶层容器。

需要注意的是JDialog是一种特殊的容器,它可以被JFrame容纳,其余的顶层容器是无法互相容纳的。
根据它们的构造方法,我们可以根据上一文中jFrame的构造方法,照葫芦画瓢写出各自的代码。

直接构造JDialog

import javax.swing.*;
import java.awt.*;


public class test {
    public static void main(String[] args) {
        JDialog jDialog = new JDialog();   //创建JDialog对象
        jDialog.setTitle("JDialog");      //设定标题
        jDialog.setBounds(300,300,500,500); //设定位置和大小
        jDialog.setVisible(true);   //设置可见性
        jDialog.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
//退出方式
        JLabel label = new JLabel("This is a JDialog");  //创建一个JLabel标签
        label.setHorizontalAlignment(SwingConstants.CENTER);  //设定位置居中
        label.setVisible(true);   //设置可见性
        jDialog.add(label);  //将其添加到对话框中
    }
}

在这里插入图片描述

创建属于窗口JFrame的对话框JDialog

下面是一个带有对话框的窗口代码:

import javax.swing.*;
import java.awt.*;

class jDialog extends JDialog {
    public jDialog (Frame frame, String title, int x, int y, int width, int height) {
        super(frame, title);
        setBounds(x,y,width,height);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
}
class jFrame extends JFrame {
    public jFrame (String title, int x, int y, int width, int height) {
        super(title);                     //调用父类构造方法设置标题
        setBounds(x, y, width, height);   //一步到位把位置和大小设置好
        setVisible(true);                 //设置窗口可见性
        setDefaultCloseOperation(EXIT_ON_CLOSE);  //设置关闭方式

        JLabel jLabel = new JLabel("这是一个带有标题的窗口");//这是一个标签组件
        jLabel.setHorizontalAlignment(SwingConstants.CENTER); //设置文本位置
        add(jLabel);                       //调用add函数将标签组件添加到抽口当中

        jDialog jDialog1 = new jDialog(this,"jDialog",x+20,y+20,width,height);
        //这里直接将对话框添加到窗口中了,不用再调用add函数
    }
}
public class test {
    public static void main(String[] args) {
        jFrame frame = new jFrame("frame",100,100,500,500);
    }
}

在这里插入图片描述
注意:由于jDialog是被jFrame容纳的,因此关闭jFrame时也会同时退出JDialog。

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值