一、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

上面代码有好多没有方法体的代码,我们可以点击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

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

六、一些对话框

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:\n","title",JOptionPane.PLAIN_MESSAGE); //下拉框Java代码
Object[] options ={ "苹果", "橘子", "香蕉" };
String s = (String) JOptionPane.showInputDialog(null,"请选择你喜欢吃的水果:\n", "水果", 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 }

Java的awt包的使用实例和Java的一些提示框的更多相关文章

  1. java.awt包提供了基本的java程序的GUI设计工具

    java.awt包提供了基本的java程序的GUI设计工具.主要包括下述三个概念: 组件--Component 容器--Container 布局管理器--LayoutManager package T ...

  2. 在Editplus中配置java的(带包)编译(javac)和运行(java)的方法

    配置的前提是电脑安装了JDK并且配置好了相关的环境变量(JAVA_HOME,path和classpath). 配置好后在命令行中输入javac和java验证是否配置成功: 如果出现上面的情况则说明配置 ...

  3. 在Editplus中配置java的(带包)编译(javac)和执行(java)的方法

    配置的前提是电脑安装了JDK而且配置好了相关的环境变量(JAVA_HOME,path和classpath). 配置好后在命令行中输入javac和java验证是否配置成功: 假设出现上面的情况则说明配置 ...

  4. java自定义jar包让jmeter使用---给java参数化

    上一篇文章中,提到怎么生成jar包让jmeter使用,这次我们来试试做参数,因为发现调包的时候其实更多还是参数化,那么开始改造吧 1.在httpclientpost这个类中替换参数,且打印参数 imp ...

  5. Java的常用包

    java.lang:  这个包下包含了Java语言的核心类,如String.Math.Sytem和Thread类等,使用这个包无需使用import语句导入,系统会自动导入这个包中的所有类. java. ...

  6. Java API 各个包的内容解释

    java.applet 提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类. java.awt 包含用于创建用户界面和绘制图形图像的所有类. java.awt. ...

  7. 深入探讨 java.lang.ref 包

    深入探讨 java.lang.ref 包 本文主要探讨了 java.lang.ref 包的使用方法,以及源码解读.并就该包在不同 JVM 上的表现进行了比较与分析.通过阅读本文,读者可以加深对 jav ...

  8. Java打jar包详解

    Java打jar包详解 一.Java打jar包的几种方式https://www.cnblogs.com/mq0036/p/8566427.html 二.MANIFEST.MF文件详解https://w ...

  9. Java、javax、org、sun、Java.util等常用包的区别、详解、实例

    Java.javax.org.sun包都是jdk提供的类包,且都是在rt.jar中.rt.jar是JAVA基础类库(java核心框架中很重要的包),包含lang在内的大部分功能,而且rt.jar默认就 ...

随机推荐

  1. RedHat6.1通过配置yum server安装软件包

    1.获取镜像RHEL_6.1\ x86_64\ Disc\ 1 2.配置yum server #cd /etc/yum.repos.d #tar -cvf 20141114bak.tar *.repo ...

  2. Burp suite的系列介绍 (1)

    前言 为了进行Web安全方面的学习,Burp suite是必备的工具之一,我们将会从多个模块进行逐步的学习. Burp suite的应用场景 1.HTTP服务端接口测试. 2.HTTP客户端和HTTP ...

  3. sa-token 之权限验证

    权限验证 核心思想 所谓权限验证,验证的核心就是当前账号是否拥有一个权限码 有:就让你通过.没有:那么禁止访问 再往底了说,就是每个账号都会拥有一个权限码集合,我来验证这个集合中是否包括我需要检测的那 ...

  4. win10/windows 安装Pytorch

    https://pytorch.org/get-started/locally/ 去官网,选择你需要的版本. 把 pip install torch==1.5.0+cu101 torchvision= ...

  5. g/test/s/lose/won/g

    包含字符串test的任意行商,用lose代替won

  6. 【ORACLE】awr报告问题分析

    本文转自:http://www.linuxidc.com/Linux/2015-10/123959.htm 感谢分享 1.问题说明 运维人员都有"节日休假恐怖症",越到节日.休假和 ...

  7. floating point

    记录浮点数的单精度和双精度(IEEE754) 1.单精度(float) ​ 1.定义:单精度占4字节/32位,其中1号位符号位,其次是8位阶码/指数(阶符+阶数),23位尾数(小数). 2.双精度(d ...

  8. 2021年【线上】第一性原理vasp技术实战培训班

    材料模拟分子动力学课程 3月19号--22号 远程在线课 lammps分子动力学课程 3月12号--15号 远程在线课 第一性原理VASP实战课 3月25号-28号 远程在线课 量子化学Gaussia ...

  9. Django - WebSocket:dwebsocket

    Django - WebSocket:dwebsocket 什么是WebSocket WebSocket是一种在单个TCP连接上进行全双工通信的协议 WebSocket使得客户端和服务器之间的数据交换 ...

  10. 提取当前文件夹下的所有文件名.bat(Windows批处理文件)

    @echo off dir /s/b *.* > 文件名.txt exit