JDialog窗体是Swing组件中的对话框,它继承了AWT组件中的java.awt.Dialog类。
JDialog的功能是从一个窗体中弹出另一个窗体。JDialog窗体实质上就是另一种类型的窗体,它与JFrame窗体类似,在使用时也需要调用getContentPane()方法将窗体转换为容器,然后在容器中设置窗体的特性。
在应用程序中创建JDialog窗体需要实例化JDialog类,通常使用以下几个JDialog类的构造方法。
- public JDialog(): 创建一个没有标题和父窗体的对话框。
- public JDialog(Frame f):创建一个指定父窗体的对话框,但该窗体没有标题。
- public JDialog(Frame f,boolean model):创建一个指定父窗体的对话框,并指定类型,但该窗体没有标题。
- public JDialog(Frame f,String title):创建一个指定标题和父窗体的对话框。
- public JDialog(Frame f,String title,boolean model):创建一个指定标题、窗体和模式的对话框。
实例
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
class MyJDialog extends JDialog{
public MyJDialog(MyFrame frame)
{
super(frame,"第一个JDialog窗体",true);//实例化一个JDialog类对象,指定对话框的父窗体、窗体标题和类型
Container c = getContentPane();//创建一个容器
c.add(new JLabel("这是一个对话框"));//在容器中添加标签
setBounds(120,120,250,200);//设置对话框窗体大小
}
}
public class MyFrame extends JFrame{
public static void main(String[] args) {
new MyFrame();
}
public MyFrame(){
setTitle("窗体");
setBounds(100,100,300,200);//设置窗体坐标和大小
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
//设置窗体关闭规则,关闭窗口时释放窗体资源
Container c = getContentPane();//创建一个容器
c.setLayout(null);//取消布局管理器
JLabel jl = new JLabel("这是一个JFrame窗体");//在窗体中设置标签
jl.setHorizontalAlignment(SwingConstants.CENTER);//将标签文字设置在标签中间位置
c.add(jl);
JButton bl = new JButton("弹出对话框");
bl.setBounds(40, 40, 100, 20);
bl.addActionListener(new ActionListener() {//为按钮添加鼠标单击事件
public void actionPerformed(ActionEvent e) {
new MyJDialog(MyFrame.this).setVisible(true);//使MYJDialog窗体可见
}
});
c.add(bl);
setVisible(true);//设置窗体为可见
}
}
实验结果
点击按钮
从实例代码中可以看到,JDialog窗体与JFrame窗体形式基本相同,甚至在设置窗体的特性时调用的方法名称都基本相同,如设置窗体大小、窗体关闭状态等。