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);  //将其添加到对话框中
    }
}

Java swing——创建对话框JDialog_第1张图片

创建属于窗口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);
    }
}

Java swing——创建对话框JDialog_第2张图片
注意:由于jDialog是被jFrame容纳的,因此关闭jFrame时也会同时退出JDialog。

你可能感兴趣的:(java,开发语言)