• JavaUI弹出对话框


    对话框的四种类型:
    消息, 输入,确认, 颜色

    背景:建一个名为“ActionEventDemo”的窗口,在其中放置了一个按钮,一个面板,一个标签。

     1)消息对话框

    (1)点击按钮弹出名为"消息提示对话框"的消息对话框,对话框里的内容为:“是否要输入内容”。选择“是”即输入 代码中 已经给出的内容。

    代码如下:

     1 package HandEvent;
     2 
     3 import java.awt.event.ActionEvent;
     4 import java.awt.event.ActionListener;
     5 
     6 import javax.swing.*;
     7 
     8 public class ActionEventDemo extends JFrame implements ActionListener {
     9     JButton click;
    10     JPanel panel;
    11     JLabel message;
    12     
    13     public ActionEventDemo() {
    14         super("ActionEventDemo");//只能放在第一行,在子类的构造方法中,用super调用且放在第一行
    15         click =new JButton ("Click");
    16         panel =new JPanel();
    17         message=new JLabel();
    18         
    19         add(panel);
    20         panel.add(click);
    21         panel.add(message);
    22         
    23         click.addActionListener(this);//this指代"obj"(public static void 中new 的对象)
    24         setSize(300,300);
    25         setVisible(true);
    26         
    27     }
    28     
    29     public static void main(String args[]) {
    30         ActionEventDemo obj=new ActionEventDemo(); 
    31     }
    32     public void actionPerformed(ActionEvent arg0) {
    33         //消息对话框
    34         JOptionPane.showMessageDialog(this,"是否要输入内容","消息提示对话框",JOptionPane.INFORMATION_MESSAGE);//this交代了在this的前方显示对话框
    35         //this 至位置,第二个 为内容,第三个为对话框标题,第四个为对话框类型
    36         
    37         message.setText("Welcome to java");//需要传参
    38         
    39     }
    40 }
    View Code

    (2)点击按钮弹出名为“消息警告对话框”,对话框里的内容为“该内容有风险,是否要继续输入”。选择“是”即输入 代码中 已经给出的内容。
    代码如下:

     1 package HandEvent;
     2 
     3 import java.awt.event.ActionEvent;
     4 import java.awt.event.ActionListener;
     5 
     6 import javax.swing.*;
     7 
     8 public class ActionEventDemo extends JFrame implements ActionListener {
     9     JButton click;
    10     JPanel panel;
    11     JLabel message;
    12     
    13     public ActionEventDemo() {
    14         super("ActionEventDemo");//只能放在第一行,在子类的构造方法中,用super调用且放在第一行
    15         click =new JButton ("Click");
    16         panel =new JPanel();
    17         message=new JLabel();
    18         
    19         add(panel);
    20         panel.add(click);
    21         panel.add(message);
    22         
    23         click.addActionListener(this);//this指代"obj"(public static void 中new 的对象)
    24         setSize(300,300);
    25         setVisible(true);
    26         
    27     }
    28     
    29     public static void main(String args[]) {
    30         ActionEventDemo obj=new ActionEventDemo(); 
    31     }
    32     public void actionPerformed(ActionEvent arg0) {
    33         //消息对话框
    34         JOptionPane.showMessageDialog(this,"该内容有风险,是否要继续输入","消息警告对话框",JOptionPane.WARNING_MESSAGE);//this交代了在this的前方显示对话框
    35         //this 至位置,第二个 为内容,第三个为对话框标题,第四个为对话框类型
    36         
    37         message.setText("Welcome to java");//需要传参
    38         
    39     }
    40 }
    View Code


     

    两段代码的分析:这两段代码都是属于消息对话框(当然还有其他的消息对话框)。两段代码的变动只有一句:
    将:

            JOptionPane.showMessageDialog(this,"是否要输入内容","消息提示对话框",JOptionPane.INFORMATION_MESSAGE);//this交代了在this的前方显示对话框


     

    改为:

            JOptionPane.showMessageDialog(this,"该内容有风险,是否要继续输入","消息警告对话框",JOptionPane.WARNING_MESSAGE);//this交代了在this的前方显示对话框

    在JOptionPane.showMessageDialog后面的括号中(,,,)有三个都号,分割成了4个位置。

    第一个位置“this”表示,在该位置之前弹出窗口;第二个位置 输入对话框的内容;第三个位置 设定对话框的标题;第四个位置 设定对话框的属性(提示.警告等等,注:不同属性的标志不一样)。
    其中 “this”——new 出的“obj”对象的设定:

    public static void main(String args[]) {
            ActionEventDemo obj=new ActionEventDemo(); 
        }


    2)输入对话框

    (1)点击按钮弹出名为"输入对话框"的输入对话框,对话框里的内容为:“给标签赋值的内容是:”,在下面的文本框中输入 要给标题赋值的内容 点击确定后,则在按钮后面显示。如果点击“取消”,则无内容显示。

    代码如下:

     1 package HandEvent;
     2 
     3 import java.awt.event.ActionEvent;
     4 import java.awt.event.ActionListener;
     5 
     6 import javax.swing.*;
     7 
     8 public class ActionEventDemo extends JFrame implements ActionListener {
     9     JButton click;
    10     JPanel panel;
    11     JLabel message;
    12     
    13     public ActionEventDemo() {
    14         super("ActionEventDemo");//只能放在第一行,在子类的构造方法中,用super调用且放在第一行
    15         click =new JButton ("Click");
    16         panel =new JPanel();
    17         message=new JLabel();
    18         
    19         add(panel);
    20         panel.add(click);
    21         panel.add(message);
    22         
    23         click.addActionListener(this);
    24         setSize(300,300);
    25         setVisible(true);    
    26     }
    27     
    28     public static void main(String args[]) {
    29         ActionEventDemo obj=new ActionEventDemo(); 
    30     }
    31     
    32     public void actionPerformed(ActionEvent arg0) {
    33         //输入对话框
    34         String str=JOptionPane.showInputDialog(this, "给标签赋值的内容是:","输入对话框",JOptionPane.INFORMATION_MESSAGE);
    35         if(str!=null)
    36             message.setText(str);
    37             //this 至位置,第二个 为内容,第三个为对话框标题,第四个为对话框类型
    38         //message.setText("Welcome to java");//需要传参
    39     }
    40 }
    View Code

    分析:
    在之前的内容上

    将:

            JOptionPane.showMessageDialog(this,"该内容有风险,是否要继续输入","消息警告对话框",JOptionPane.WARNING_MESSAGE);//this交代了在this的前方显示对话框

    改为:

    String str=JOptionPane.showInputDialog(this, "给标签复制的内容是:","输入对话框",JOptionPane.INFORMATION_MESSAGE);
            if(str!=null)
                message.setText(str);

    注:

    <1>和消息提示框不同的是,输入对话框必须要定义一个String str 变量 ,并将JOptionPane.showInputDialog()的值赋值给该变量

    <2>考虑到代码的完整性,用if语句判断,如果在输入框中输入不为空(即不为  null)则用message。setText导出输入框中输入的字符串。

    <3>JOptionPane.showInputDialog()和JOptionPone.showMessageDialog()一样,在他们后面的括号中的四个位置上:分别是:this(在该位置之前插入),对话框中的内容,对话框的名称以及对话框的属性。

    3)确认对话框

    (1)点击按钮弹出名为"确认对话框"的确认对话框,对话框里的内容为:“是否确认给标题赋值:”,点击“是”,则在按钮后面显示预先先好的message.setText()复制代码。如果点击“否”或者“取消”,则无内容显示。

    代码如下:

     1 package HandEvent;
     2 
     3 import java.awt.event.ActionEvent;
     4 import java.awt.event.ActionListener;
     5 
     6 import javax.swing.*;
     7 
     8 public class ActionEventDemo extends JFrame implements ActionListener {
     9     JButton click;
    10     JPanel panel;
    11     JLabel message;
    12     
    13     public ActionEventDemo() {
    14         super("ActionEventDemo");//只能放在第一行,在子类的构造方法中,用super调用且放在第一行
    15         click =new JButton ("Click");
    16         panel =new JPanel();
    17         message=new JLabel();
    18         
    19         add(panel);
    20         panel.add(click);
    21         panel.add(message);
    22         
    23         click.addActionListener(this);
    24         
    25         setSize(300,300);
    26         setVisible(true);
    27     }
    28     
    29     public static void main(String args[]) {
    30         ActionEventDemo obj=new ActionEventDemo(); 
    31     }
    32     
    33     public void actionPerformed(ActionEvent arg0) {
    34         //确认对话框
    35         int n=JOptionPane.showConfirmDialog(this, "确认是否给标签赋值","确认对话框",JOptionPane.YES_NO_CANCEL_OPTION);
    36         if(n==JOptionPane.YES_OPTION) {
    37             message.setText("welcome");
    38         }
    39         else if (n==JOptionPane.NO_OPTION){
    40             message.setText(null);
    41         }
    42         else {
    43             message.setText(null);
    44         }
    45         
    46     }
    47 }
    View Code

    分析:
    在2)的基础上:
    将:

    String str=JOptionPane.showInputDialog(this, "给标签复制的内容是:","输入对话框",JOptionPane.INFORMATION_MESSAGE);
            if(str!=null)
                message.setText(str);

     改为:

    int n=JOptionPane.showConfirmDialog(this, "确认是否给标签赋值","确认对话框",JOptionPane.YES_NO_CANCEL_OPTION);
            if(n==JOptionPane.YES_OPTION) {
                message.setText("welcome");
            }
            else if (n==JOptionPane.NO_OPTION){
                message.setText(null);
            }
            else {
                message.setText(null);
            }
            

    注 :
    <1>和输入对话框一样,也要定义int n 的整型变量,并将JOptionPane.showConfirmDialog()赋值变量
    <2>JOptionPane.showConfirmDialog()和JOptionPane.showInputDialog(),JOptionPone.showMessageDialog()一样,在他们后面的括号中的四个位置上:分别是:this(在该位置之前插入),对话框中的内容,对话框的名称以及对话框的属性。

    <3>在<2>中的第四个位置上JOptionPane在加“ .  ”之后有很三个可选项(包括1yes,no,cancle  2yes  3no)

    <4>若选择了yes,no ,cancle的话,if语句对三个按钮反别判断。“no”或者“cancle”则在massage。setText()中写入“null”

    4)颜色对话框

    (1)点击按钮弹出名为"调色板"的颜色对话框,选择颜色,即为窗口的背景色。

    代码如下:

     1 package HandEvent;
     2 
     3 import java.awt.Color;
     4 import java.awt.Container;
     5 import java.awt.event.ActionEvent;
     6 import java.awt.event.ActionListener;
     7 
     8 import javax.swing.*;
     9 
    10 public class ActionEventDemo extends JFrame implements ActionListener {
    11     JButton click;
    12     JPanel panel;
    13     JLabel message;
    14     
    15     public ActionEventDemo() {
    16         super("ActionEvenDemo");//只能放在第一行,在子类的构造方法中,用super调用且放在第一行
    17         click =new JButton ("Click");
    18         panel =new JPanel();
    19         message=new JLabel();
    20         
    21         add(panel);
    22         panel.add(click);
    23         panel.add(message);
    24         
    25         click.addActionListener(this);
    26         
    27         setSize(300,300);
    28         setVisible(true);
    29                 
    30     }
    31     
    32     public static void main(String args[]) {
    33         ActionEventDemo obj=new ActionEventDemo(); 
    34     }
    35 
    36     public void actionPerformed(ActionEvent arg0) {
    37         //颜色对话框
    38         Color clor=JColorChooser.showDialog(this,"调色板" ,getContentPane().getBackground());
    39         panel.setBackground(clor);
    40     
    41     }
    42 }
    View Code

    分析:
    将:

    int n=JOptionPane.showConfirmDialog(this, "确认是否给标签赋值","确认对话框",JOptionPane.YES_NO_CANCEL_OPTION);
            if(n==JOptionPane.YES_OPTION) {
                message.setText("welcome");
            }
            else if (n==JOptionPane.NO_OPTION){
                message.setText(null);
            }
            else {
                message.setText(null);
            }
            


    改为:

    Color clor=JColorChooser.showDialog(this,"调色板" ,getContentPane().getBackground());
            panel.setBackground(clor);
        

    注:
    <1>和输入,确认对话框一样,定义一个Color clor的变量,并将JColorChooser.showDialog()赋值变量。

    <2>直接用JPanel 定义的变量panel调用color,否则无法显示背景颜色。

  • 相关阅读:
    Git配置文件
    Python操作Excel表格概括
    字符串时间转换为格式化时间
    windows 安装pip 及更换pip国内源
    JS数组遍历的方法汇总
    python文件读写操作(r/r+/rb/w/w+/wb/a/a+/ab)
    【Offer】Kafka面试题总结
    netdata开源Linux系统监控系统安装:配置项详解
    netdata开源Linux系统监控系统安装:一句话满足你的要求
    nginx配置禁特定路径下的反向代理
  • 原文地址:https://www.cnblogs.com/Catherinezhilin/p/7977164.html
Copyright © 2020-2023  润新知