This program demonstrates the creation of a JDialog from a super-window. The created dialog is on the mode "Modal".
- package com.han;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.*;
- /**
- * This program demonstrates the creation of a JDialog from a super-window.
- * The created dialog is on the mode "Modal".
- * @author han
- *
- */
- public class SwingJDialog {
- public SwingJDialog(){
- final JFrame jf=new JFrame("弹出窗体实验");
- // Some methods defined by Toolkit query the native operating system directly.
- Dimension screensize=Toolkit.getDefaultToolkit().getScreenSize();
- int Swing1x=500;
- int Swing1y=300;
- jf.setBounds(screensize.width/2-Swing1x/2,screensize.height/2-Swing1y/2,Swing1x,Swing1y);
- jf.setVisible(true);
- jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- Container c=jf.getContentPane();
- c.setBackground(Color.pink);
- c.setLayout(null);
- Dimension Swing1size=jf.getSize();
- JButton jb=new JButton("弹出对话窗");
- int jbx=100;
- int jby=30;
- jb.setBounds(Swing1size.width/2-jbx/2,Swing1size.height/2-jby/2,jbx,jby);
- //jb.setBounds(Swing1x/2-jbx/2,Swing1y/2-jby/2,jbx,jby);
- c.add(jb);
- class Dialog1 {
- JDialog jd=new JDialog(jf,"JDialog窗体",true);
- Dialog1(){
- jd.setSize(300,200);
- Container c2=jd.getContentPane();
- c2.setLayout(null);
- JLabel jl=new JLabel("只是一个对话框");
- jl.setBounds(0,-20,100,100);
- JButton jbb=new JButton("确定");
- jbb.setBounds(100,100,60,30);
- c2.add(jl);
- c2.add(jbb);
- jbb.addActionListener(new ActionListener(){
- @Override
- public void actionPerformed(ActionEvent e) {
- jd.dispose();
- //System.exit(0);
- }
- });
- System.out.println("OK");
- jd.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
- }
- }
- jb.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e){
- new Dialog1().jd.setVisible(true);//弹出对话框
- System.out.println("OK2");
- }
- });
- System.out.println("OK3");
- }
- public static void main(String[] args){
- new SwingJDialog();
- }
- }