• Java的awt包的使用实例和Java的一些提示框


    一、awt的一些组件

    Label l1=new Label("姓名:");  //标签
            Label l2=new Label("密码:");
            TextField tf1=new TextField(20); //文本框,数字是设置其文本框长度
            TextField tf2=new TextField(20); 
            Button b1=new Button("确定");  //按钮
            Button b2=new Button("取消");
            Frame f1=new Frame("登录窗口");  //窗口

    二、之后对awt的一些组件进行大小设置

    f1.setSize(250, 300);        //设置窗口大小
            f1.setLocation(400, 400);
            f1.setLayout(null);
            Panel p=new Panel();
            p.setSize(250, 200);
            p.setLocation(0, 100);        
            p.add(l1);    //添加各种组件    
            p.add(tf1);
            p.add(l2);
            p.add(tf2);
            p.add(b1);
            p.add(b2);
            f1.add(p);
            f1.setVisible(true);  //只有加上这一句各种组件才会显示出来

    三、上面程序运行之后会出现窗口,但是你点击这个窗口的关闭按钮没有作用,只能强行终止程序。所以我们给窗口的关闭按钮添加事件。下面讲两种方式

    3.1、你可以通过实现WindowListener接口来完成这个任务

     1 package temp;
     2 import java.awt.Button;
     3 import java.awt.Frame;
     4 import java.awt.Label;
     5 import java.awt.Panel;
     6 import java.awt.TextField;
     7 import java.awt.event.WindowEvent;
     8 import java.awt.event.WindowListener;
     9 import java.io.BufferedReader;
    10 import java.io.File;
    11 import java.io.FileReader;
    12 import java.io.IOException;
    13 import java.util.Scanner;
    14 
    15 public class smile {
    16     public static class DoEvent implements WindowListener{
    17 
    18         @Override
    19         public void windowActivated(WindowEvent arg0) {
    20             // TODO Auto-generated method stub
    21             
    22         }
    23 
    24         @Override
    25         public void windowClosed(WindowEvent arg0) {
    26             // TODO Auto-generated method stub
    27             
    28         }
    29 
    30         @Override
    31         public void windowClosing(WindowEvent arg0) {
    32             // TODO Auto-generated method stub
    33             System.out.println("窗口关闭");
    34             System.exit(0);
    35         }
    36 
    37         @Override
    38         public void windowDeactivated(WindowEvent arg0) {
    39             // TODO Auto-generated method stub
    40             
    41         }
    42 
    43         @Override
    44         public void windowDeiconified(WindowEvent arg0) {
    45             // TODO Auto-generated method stub
    46             
    47         }
    48 
    49         @Override
    50         public void windowIconified(WindowEvent arg0) {
    51             // TODO Auto-generated method stub
    52             
    53         }
    54 
    55         @Override
    56         public void windowOpened(WindowEvent arg0) {
    57             // TODO Auto-generated method stub
    58             
    59         }
    60         
    61     }
    62     public static void main(String[] args) {
    63         // TODO Auto-generated method stub
    64         Label l1=new Label("姓名:");  //标签
    65         Label l2=new Label("密码:");
    66         TextField tf1=new TextField(20); //文本框
    67         TextField tf2=new TextField(20); 
    68         Button b1=new Button("确定");  //按钮
    69         Button b2=new Button("取消");
    70         Frame f1=new Frame("登录窗口");  //窗口
    71         
    72         DoEvent do1 = new DoEvent();
    73         f1.addWindowListener(do1); 
    74         
    75         f1.setSize(250, 300);        //设置窗口大小
    76         f1.setLocation(400, 400);
    77         f1.setLayout(null);
    78         Panel p=new Panel();
    79         p.setSize(250, 200);
    80         p.setLocation(0, 100);        
    81         p.add(l1);    //添加各种组件    
    82         p.add(tf1);
    83         p.add(l2);
    84         p.add(tf2);
    85         p.add(b1);
    86         p.add(b2);
    87         f1.add(p);
    88         f1.setVisible(true);  //只有加上这一句各种组件才会显示出来
    89     }        
    90 }
    91 
    92 
    93  
    View Code

    上面代码有好多没有方法体的代码,我们可以点击Add unimplemented methods就可以让IDE帮你写出来

    3.2、你也可以通过WindowAdapter这个类(实现于WindowListener这个接口),这样的话你就可以直接以匿名内部类方式直接new对象

    package temp;
    import java.awt.Button;
    import java.awt.Frame;
    import java.awt.Label;
    import java.awt.Panel;
    import java.awt.TextField;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Scanner;
    
    public class smile {
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Label l1=new Label("姓名:");  //标签
            Label l2=new Label("密码:");
            TextField tf1=new TextField(20); //文本框
            TextField tf2=new TextField(20); 
            Button b1=new Button("确定");  //按钮
            Button b2=new Button("取消");
            Frame f1=new Frame("登录窗口");  //窗口
            
            f1.addWindowListener(new WindowAdapter(){
    
                @Override
                public void windowClosing(WindowEvent e) {
                    // TODO Auto-generated method stub
                    //super.windowClosing(e);
                    System.out.println("用户关闭窗口");
                    System.exit(0);
                }  //window已经实现了WindowListener的方法
                
            });
            
            f1.setSize(250, 300);        //设置窗口大小
            f1.setLocation(400, 400);
            f1.setLayout(null);
            Panel p=new Panel();
            p.setSize(250, 200);
            p.setLocation(0, 100);        
            p.add(l1);    //添加各种组件    
            p.add(tf1);
            p.add(l2);
            p.add(tf2);
            p.add(b1);
            p.add(b2);
            f1.add(p);
            f1.setVisible(true);  //只有加上这一句各种组件才会显示出来
        }        
    }
    
    
     

    或者你可以继承这个WindowAdapter这个适配器类来写

    package temp;
    import java.awt.Button;
    import java.awt.Frame;
    import java.awt.Label;
    import java.awt.Panel;
    import java.awt.TextField;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Scanner;
    
    public class smile {
        
        public static void main(String[] args) {
            class DoEvent2 extends WindowAdapter{
    
                @Override
                public void windowClosing(WindowEvent e) {
                    // TODO Auto-generated method stub
                    //super.windowClosing(e);
                    System.out.println("用户关闭窗口");
                    System.exit(0);
                }  //window已经实现了WindowListener的方法
                
            }
            // TODO Auto-generated method stub
            Label l1=new Label("姓名:");  //标签
            Label l2=new Label("密码:");
            TextField tf1=new TextField(20); //文本框
            TextField tf2=new TextField(20); 
            Button b1=new Button("确定");  //按钮
            Button b2=new Button("取消");
            Frame f1=new Frame("登录窗口");  //窗口
            
            f1.addWindowListener(new DoEvent2());
            
            f1.setSize(250, 300);        //设置窗口大小
            f1.setLocation(400, 400);
            f1.setLayout(null);
            Panel p=new Panel();
            p.setSize(250, 200);
            p.setLocation(0, 100);        
            p.add(l1);    //添加各种组件    
            p.add(tf1);
            p.add(l2);
            p.add(tf2);
            p.add(b1);
            p.add(b2);
            f1.add(p);
            f1.setVisible(true);  //只有加上这一句各种组件才会显示出来
        }        
    }
    
    
     

    总的来说WindowAdapter是一个类,而WindowListener这一个接口,我们实现接口必须实现其所有抽象方法,但是继承类就不需要写这么多

    四、我们需要判断输入的登陆用户名和密码是否正确,我们设定用户名和密码来自文件,且它们在一行用空格分开

    package temp;
    import java.awt.Button;
    import java.awt.Frame;
    import java.awt.Label;
    import java.awt.Panel;
    import java.awt.TextField;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.Scanner;
    
    public class smile {
        public static String name,password;
        public static void main(String[] args) {
            /*------------------------------------------*/
            Scanner scan = new Scanner(System.in);
            String file_road=scan.nextLine();
            File file = new File(file_road);
            BufferedReader reader = null;
            StringBuffer sbf = new StringBuffer();
            try {
                reader = new BufferedReader(new FileReader(file));
                String tempStr;
                while ((tempStr = reader.readLine()) != null) {
                    sbf.append(tempStr);
                }
                reader.close();
                String[] s = sbf.toString().split(" ");
                name = s[0];
                password=s[1];
                System.out.println(name);   //输出从文件里面读取的信息
                System.out.println(password);
                //return sbf.toString();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (reader != null) {
                    try {
                        reader.close();
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
                }
            }
            /*------------------------------------------*/
        }        
    }
    
    
     

    运行的时候输入txt文件的路径,程序就会读取信息并输出

    五、对按钮添加事件

    5.1、当点击确定按钮就要判断用户名和密码是否正确,不正确就清空输入框,并跳出用户名密码错误提示框

    5.2、当点击取消按钮,就清空输入框

    实现ActionListener接口的actionPerformed方法就可以

      1 package temp;
      2 import java.awt.Button;
      3 import java.awt.Frame;
      4 import java.awt.Label;
      5 import java.awt.Panel;
      6 import java.awt.TextField;
      7 import java.awt.event.ActionEvent;
      8 import java.awt.event.ActionListener;
      9 import java.awt.event.WindowAdapter;
     10 import java.awt.event.WindowEvent;
     11 import java.awt.event.WindowListener;
     12 import java.io.BufferedReader;
     13 import java.io.File;
     14 import java.io.FileReader;
     15 import java.io.IOException;
     16 import java.util.Scanner;
     17 
     18 import javax.swing.JOptionPane;
     19 
     20 public class smile {
     21     public static String name,password;
     22     public static void main(String[] args) {
     23         class DoEvent2 extends WindowAdapter{
     24 
     25             @Override
     26             public void windowClosing(WindowEvent e) {
     27                 // TODO Auto-generated method stub
     28                 //super.windowClosing(e);
     29                 System.out.println("用户关闭窗口");
     30                 System.exit(0);
     31             }  //window已经实现了WindowListener的方法
     32             
     33         }
     34         /*------------------------------------------*/
     35         Scanner scan = new Scanner(System.in);
     36         String file_road=scan.nextLine();
     37         File file = new File(file_road);
     38         BufferedReader reader = null;
     39         StringBuffer sbf = new StringBuffer();
     40         try {
     41             reader = new BufferedReader(new FileReader(file));
     42             String tempStr;
     43             while ((tempStr = reader.readLine()) != null) {
     44                 sbf.append(tempStr);
     45             }
     46             reader.close();
     47             String[] s = sbf.toString().split(" ");
     48             name = s[0];
     49             password=s[1];
     50             System.out.println(name);   //输出从文件里面读取的信息
     51             System.out.println(password);
     52             //return sbf.toString();
     53         } catch (IOException e) {
     54             e.printStackTrace();
     55         } finally {
     56             if (reader != null) {
     57                 try {
     58                     reader.close();
     59                 } catch (IOException e1) {
     60                     e1.printStackTrace();
     61                 }
     62             }
     63         }
     64         /*------------------------------------------*/
     65         
     66         
     67         
     68         // TODO Auto-generated method stub
     69         Label l1=new Label("姓名:");  //标签
     70         Label l2=new Label("密码:");
     71         TextField tf1=new TextField(20); //文本框
     72         TextField tf2=new TextField(20); 
     73         Button b1=new Button("确定");  //按钮
     74         Button b2=new Button("取消");
     75         Frame f1=new Frame("登录窗口");  //窗口
     76         
     77         /*-----------------------------------------*/
     78         class Dobutton implements ActionListener{
     79 
     80             @Override
     81             public void actionPerformed(ActionEvent a) {
     82                 // TODO Auto-generated method stub
     83                 if(a.getSource()==b1)
     84                 {
     85                     if(name.equals(tf1.getText()) && password.equals(tf2.getText()))
     86                     {
     87                         System.out.println("登陆成功!");
     88                         System.out.println("用户名为:"+tf1.getText());
     89                         System.out.println("用户密码为:"+tf2.getText());
     90                         System.exit(0);
     91                     }else {
     92                         //System.out.println("用户名或密码错误!");
     93                         JOptionPane.showMessageDialog(null, "用户名或密码错误!", "Title",JOptionPane.ERROR_MESSAGE);
     94                         tf1.setText(" ");  //设置文本框内容,必须要有一个空格
     95                         tf2.setText(" ");
     96                     }
     97                     
     98                 }
     99                 else if(a.getSource()==b2){
    100                     tf1.setText(" ");
    101                     tf2.setText(" ");
    102                 }
    103             }
    104             
    105         }
    106         b1.addActionListener(new Dobutton());
    107         b2.addActionListener(new Dobutton());
    108         /*-------------------------------------------*/
    109         
    110         f1.addWindowListener(new DoEvent2());
    111         
    112         f1.setSize(250, 300);        //设置窗口大小
    113         f1.setLocation(400, 400);
    114         f1.setLayout(null);
    115         Panel p=new Panel();
    116         p.setSize(250, 200);
    117         p.setLocation(0, 100);        
    118         p.add(l1);    //添加各种组件    
    119         p.add(tf1);
    120         p.add(l2);
    121         p.add(tf2);
    122         p.add(b1);
    123         p.add(b2);
    124         f1.add(p);
    125         f1.setVisible(true);  //只有加上这一句各种组件才会显示出来
    126         
    127     }        
    128 }
    129 
    130 
    131  
    View Code

    上面程序运行后需要先输入保存着用户名和密码的文件位置

    六、一些对话框

    import javax.swing.ImageIcon;
    import javax.swing.JOptionPane;
    
    public class qmh {
        public static void main(String[] args) {
            JOptionPane.showMessageDialog(null, "普通对话框");
            JOptionPane.showMessageDialog(null, "警告提示框", "Title",JOptionPane.WARNING_MESSAGE);
            JOptionPane.showMessageDialog(null, "错误提示框", "Title",JOptionPane.ERROR_MESSAGE);
            JOptionPane.showMessageDialog(null, "最基本提示框", "Title",JOptionPane.PLAIN_MESSAGE);
            int n = JOptionPane.showConfirmDialog(null, "你是否喜欢Java?", "Title",JOptionPane.YES_NO_OPTION); 
            JOptionPane.showInputDialog(null," Please input:
    ","title",JOptionPane.PLAIN_MESSAGE);
            
            //下拉框Java代码
            Object[] options ={ "苹果", "橘子", "香蕉" };  
            String s = (String) JOptionPane.showInputDialog(null,"请选择你喜欢吃的水果:
    ", "水果", JOptionPane.PLAIN_MESSAGE, new ImageIcon("xx.png"), options, "xx");
            
            //自定义提示对话框
            Object[] optionss ={ "喜欢", "不喜欢" };  //自定义按钮上的文字
            int m = JOptionPane.showOptionDialog(null, "你喜欢这篇博客吗?", "Title",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, optionss, optionss[0]); 
        }
    }

    之前未整理的代码:

      1 import java.awt.Button;
      2 import java.awt.FlowLayout;
      3 import java.awt.Frame;
      4 import java.awt.Label;
      5 import java.awt.Panel;
      6 import java.awt.TextField;
      7 import java.awt.event.ActionEvent;
      8 import java.awt.event.ActionListener;
      9 import java.awt.event.WindowAdapter;
     10 import java.awt.event.WindowEvent;
     11 import java.awt.event.WindowListener;
     12 import java.io.BufferedReader;
     13 import java.io.File;
     14 import java.io.FileReader;
     15 import java.io.IOException;
     16 import java.util.Scanner;
     17 
     18 import javax.swing.JOptionPane;
     19 
     20 public class qmh {
     21     public static String name,password;
     22     public static class DoEvent implements WindowListener{
     23 
     24         @Override
     25         public void windowActivated(WindowEvent arg0) {
     26             // TODO Auto-generated method stub
     27             
     28         }
     29 
     30         @Override
     31         public void windowClosed(WindowEvent arg0) {
     32             // TODO Auto-generated method stub
     33             
     34         }
     35 
     36         @Override
     37         public void windowClosing(WindowEvent arg0) {
     38             // TODO Auto-generated method stub
     39             System.out.println("窗口关闭");
     40             System.exit(0);
     41         }
     42 
     43         @Override
     44         public void windowDeactivated(WindowEvent arg0) {
     45             // TODO Auto-generated method stub
     46             
     47         }
     48 
     49         @Override
     50         public void windowDeiconified(WindowEvent arg0) {
     51             // TODO Auto-generated method stub
     52             
     53         }
     54 
     55         @Override
     56         public void windowIconified(WindowEvent arg0) {
     57             // TODO Auto-generated method stub
     58             
     59         }
     60 
     61         @Override
     62         public void windowOpened(WindowEvent arg0) {
     63             // TODO Auto-generated method stub
     64             
     65         }
     66         
     67     }
     68 
     69     public static void main(String[] args) {
     70         
     71         class DoEvent2 extends WindowAdapter{
     72 
     73             @Override
     74             public void windowClosing(WindowEvent e) {
     75                 // TODO Auto-generated method stub
     76                 //super.windowClosing(e);
     77                 System.out.println("用户关闭窗口");
     78                 System.exit(0);
     79             }  //window已经实现了WindowListener的方法
     80             
     81         }
     82         // TODO Auto-generated method stub
     83         //MVC  V视图
     84         //DoEvent do1 = new DoEvent();  //两个使用一个就可以
     85         DoEvent2 do1 = new DoEvent2();
     86         
     87         
     88         Label l1=new Label("姓名:");  //标签
     89         Label l2=new Label("密码:");
     90         TextField tf1=new TextField(20); //文本框
     91         TextField tf2=new TextField(20); 
     92         Button b1=new Button("确定");  //按钮
     93         Button b2=new Button("取消");
     94         Frame f1=new Frame("登录窗口");  //窗口
     95         /*-------------------------------------------------*/
     96         Scanner scan = new Scanner(System.in);
     97         String file_road=scan.nextLine();
     98         File file = new File(file_road);
     99         BufferedReader reader = null;
    100         StringBuffer sbf = new StringBuffer();
    101         try {
    102             reader = new BufferedReader(new FileReader(file));
    103             String tempStr;
    104             while ((tempStr = reader.readLine()) != null) {
    105                 sbf.append(tempStr);
    106             }
    107             reader.close();
    108             String[] s = sbf.toString().split(" ");
    109             name = s[0];
    110             password=s[1];
    111             //return sbf.toString();
    112         } catch (IOException e) {
    113             e.printStackTrace();
    114         } finally {
    115             if (reader != null) {
    116                 try {
    117                     reader.close();
    118                 } catch (IOException e1) {
    119                     e1.printStackTrace();
    120                 }
    121             }
    122         }
    123 
    124         
    125         
    126         
    127         
    128         /*-------------------------------------------------*/
    129         
    130         /*-------------------------------------------------*/
    131         //f1.addWindowListener(do1);  //注册事件 ,这样注册和下面匿名类注册一样的结果
    132         
    133         f1.addWindowListener(new WindowAdapter(){
    134 
    135             @Override
    136             public void windowClosing(WindowEvent e) {
    137                 // TODO Auto-generated method stub
    138                 //super.windowClosing(e);
    139                 System.out.println("用户关闭窗口");
    140                 System.exit(0);
    141             }  //window已经实现了WindowListener的方法
    142             
    143         });
    144         /*-------------------------------------------------*/
    145         
    146         
    147         /*-------------------------------------------------*/
    148         //因为tf1在main里面,所以定义类也需要在tf1变量定义的下面
    149         class Dobutton implements ActionListener{
    150 
    151             @Override
    152             public void actionPerformed(ActionEvent a) {
    153                 // TODO Auto-generated method stub
    154                 if(a.getSource()==b1)
    155                 {
    156                     if(name.equals(tf1.getText()) && password.equals(tf2.getText()))
    157                     {
    158                         System.out.println("登陆成功!");
    159                         System.out.println("用户名为:"+tf1.getText());
    160                         System.out.println("用户密码为:"+tf2.getText());
    161                         System.exit(0);
    162                     }else {
    163                         //System.out.println("用户名或密码错误!");
    164                         JOptionPane.showMessageDialog(null, "用户名或密码错误!", "Title",JOptionPane.ERROR_MESSAGE);
    165                         tf1.setText(" ");  //设置文本框内容,必须要有一个空格
    166                         tf2.setText(" ");
    167                     }
    168                     
    169                 }
    170                 else if(a.getSource()==b2){
    171                     tf1.setText(" ");
    172                     tf2.setText(" ");
    173                 }
    174             }
    175             
    176         }
    177         b1.addActionListener(new Dobutton());
    178         b2.addActionListener(new Dobutton());
    179         /*-------------------------------------------------*/
    180         
    181         /*-------------------------------------------------*/
    182 //        b2.addActionListener(new ActionListener(){
    183 //
    184 //            @Override
    185 //            public void actionPerformed(ActionEvent arg0) {
    186 //                // TODO Auto-generated method stub
    187 //                tf1.setText("qwe");
    188 //                tf2.setText("qwe");
    189 //            }
    190 //            
    191 //        });
    192         
    193         /*-------------------------------------------------*/
    194         f1.setSize(250, 300);        //设置窗口大小
    195         f1.setLocation(400, 400);
    196         f1.setLayout(null);
    197         Panel p=new Panel();
    198         p.setSize(250, 200);
    199         p.setLocation(0, 100);        
    200         p.add(l1);    //添加各种组件    
    201         p.add(tf1);
    202         p.add(l2);
    203         p.add(tf2);
    204         p.add(b1);
    205         p.add(b2);
    206         f1.add(p);
    207         f1.setVisible(true);  //只有加上这一句各种组件才会显示出来
    208     }
    209 }
    View Code
  • 相关阅读:
    为什么 PCB 生产时推荐出 Gerber 给工厂?
    Fedora Redhat Centos 有什么区别和关系?
    【KiCad】 如何给元件给元件的管脚加上划线?
    MCU ADC 进入 PD 模式后出现错误的值?
    FastAdmin 生产环境升级注意
    EMC EMI 自行评估记录
    如何让你的 KiCad 在缩放时不眩晕?
    KiCad 5.1.0 正式版终于发布
    一次单片机 SFR 页引发的“事故”
    java基础之集合
  • 原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/14006634.html
Copyright © 2020-2023  润新知