zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    常用256安全色
    PHP获取中英文混合字符串的字数
    windows 2012 443端口无法访问解决随记!
    SQL提取时间段内数据
    正则表达式匹配
    PclZip library能够压缩与解压缩Zip格式
    安装IIS或证书上服务提示安装程序无法复制文件 ftpsvc2.dl的解决办法
    tomcat
    版本控制gitlab
    rsync
  • 原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/14006634.html
Copyright © 2011-2022 走看看