zoukankan      html  css  js  c++  java
  • 2020.10.5收获

    前两天进行了验证码登录界面的执行,在学习过程中遇到了很多问题。此文章对 对话框 知识进行了较为全面的学习和整理。

    一、JDialog类

    通过建立JDialog的子类来建立一个对话框类,然后这个类的一个实例,即这个子类创建的一个对象,就是一个对话框。

    对话框是一个容器,可以添加组件,实现与用户的交互操作。

    需要注意的是,对话框可见时,默认被系统添加到显示器屏幕上,因此不允许将一个对话框添加到另一个容器中。

    1、JDialog类的主要方法

    JDialog():构造一个无标题的初始不可见的对话框。对话框依赖一个默认的不可见的窗口,该窗口由Java运行环境提供。

    JDialog(JFrame owner):构造一个无标题的初始不可见的无模式的对话框。owner 是对话框所依赖的窗口,如果owner 取null,对话框依赖一个默认的不可见的窗口,该窗口由Java运行环境提供。

    JDialog(JFrame owner,String title):构造一个具有标题的初始不可见的无模式的对话框。参数title 是对话框的标题的名字,owner是对话框所依赖的窗口,如果owner 取null。对话框依赖一个默认的不可见的窗口,该窗口由Java运行环境提供。

    JDialog(JFrame owner,String title,boolean modal):构造一个具有标题title的初始不可见的对话框,参数modal决定对话框是否有模式,参数owner是对话框所依赖的窗口,如果owner 取null,对话框依赖一个默认的不可见的窗口,该窗口由Java运行环境提供。

    getTitle():获取对话框的位置

    setTitle():设置对话框的标题

    setModal(boolean):设置对话框的模式

    setSize():设置对话框的大小

    setVisible(boolean b):显示或隐藏对话框

    public void setJMenuBar(JMenubar menu):为对话框添加菜单条

    import java.awt.*;
    
    import java.awt.event.*;
    
    import javax.swing.*;
    
    
    public class Main{
    
    	public static void main(String[] args)throws Exception{
    
            JButton but1=new JButton("模态对话框");
    
            JButton but2=new JButton("非模态对话框");
    
            JFrame f=new JFrame("DialogDemo");
    
            f.setSize(500, 400);
    
            f.setLocation(300, 200);
    
            f.setLayout(new FlowLayout());//设置布局管理器
    
            f.add(but1);
    
            f.add(but2);
    
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置默认关闭按钮
    
            f.setVisible(true);
    
            
    
            final JLabel label=new JLabel();//创建一个标签
    
            final JDialog dialog=new JDialog(f,"Dialog");
    
            dialog.setSize(220,150);
    
            dialog.setLocation(400, 300);
    
            dialog.setLayout(new FlowLayout());
    
            final JButton but3=new JButton("确认");
    
            dialog.add(but3);
    
            
    
            //为模态对话框添加点击事件
    
            but1.addActionListener(new ActionListener(){
    
            	public void actionPerformed(ActionEvent e){
    
            		dialog.setModal(true);//设置对话框为模态
    
            		if(dialog.getComponents().length==1){//若对话框中还没有添加标签则添加上
    
            			dialog.add(label);
    
            		}
    
            		label.setText("模式对话窗,点击确认关闭");//修改标签内容
    
            		dialog.setVisible(true);
    
            	}
    
            });
    
            
    
            but2.addActionListener(new ActionListener(){
    
            	public void actionPerformed(ActionEvent e){
    
            		dialog.setModal(false);//设置对话框为模态
    
            		if(dialog.getComponents().length==1){//若对话框中还没有添加标签则添加上
    
            			dialog.add(label);
    
            		}
    
            		label.setText("模式对话窗,点击确认关闭");//修改标签内容
    
            		dialog.setVisible(true);
    
            	}
    
            });
    
            
    
            but3.addActionListener(new ActionListener(){
    
    			public void actionPerformed(ActionEvent e){
    
    				dialog.dispose();
    
    			}
    
    		});
    
    	}
    
    }
    

    运行程序后会出现一个窗口,若点击模式对话框后,必须先关闭Dialog才能关闭DialogDemo,而点击非模式对话框后,无论是否关闭Dialog都可以关闭DialogDemo

  • 相关阅读:
    剑指offer-二维数组中的查找
    TF-IDF(term frequency–inverse document frequency)
    Java实现中文字符串的排序功能
    当前课程
    【R】资源整理
    CentOS相关
    【转】Setting up SDL Extension Libraries on MinGW
    【转】Setting up SDL Extension Libraries on Visual Studio 2010 Ultimate
    【转】Setting up SDL Extension Libraries on Code::Blocks 12.11
    【转】Setting up SDL Extension Libraries on Visual Studio 2019 Community
  • 原文地址:https://www.cnblogs.com/ltw222/p/13772201.html
Copyright © 2011-2022 走看看