javaGUI窗口初学者案例深入分析.docx
- 文档编号:4259428
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:23
- 大小:19.05KB
javaGUI窗口初学者案例深入分析.docx
《javaGUI窗口初学者案例深入分析.docx》由会员分享,可在线阅读,更多相关《javaGUI窗口初学者案例深入分析.docx(23页珍藏版)》请在冰点文库上搜索。
javaGUI窗口初学者案例深入分析
1创建窗体对象
FrameDemo.java
packagecn.itcast_01;
importjava.awt.Frame;
publicclassFrameDemo{
publicstaticvoidmain(String[]args){
//创建窗体对象
//Framef=newFrame();
//Frame(Stringtitle)
Framef=newFrame("林青霞");
//设置窗体标题
f.setTitle("HelloWorld");
//设置窗体大小
f.setSize(400,300);//单位:
像素
//设置窗体位置
f.setLocation(400,200);
//调用一个方法,设置让窗体可见
//f.show();
f.setVisible(true);
//System.out.println("helloworld");
}
}
FrameDemo2.java
packagecn.itcast_01;
importjava.awt.Dimension;
importjava.awt.Frame;
importjava.awt.Point;
publicclassFrameDemo2{
publicstaticvoidmain(String[]args){
//创建对象
Framef=newFrame("方法调用的前后关系");
//f.setVisible(true);
//try{
//Thread.sleep(3000);
//}catch(InterruptedExceptione){
//e.printStackTrace();
//}
////f.setSize(400,300);
////Dimension(intwidth,intheight)
//Dimensiond=newDimension(400,300);
//f.setSize(d);
////f.setLocation(400,200);
////Point(intx,inty)
//Pointp=newPoint(400,200);
//f.setLocation(p);
//一个方法搞定
f.setBounds(400,200,400,300);
f.setVisible(true);
}
}
2事件监听机制
事件监听机制:
A:
事件源事件发生的地方
B:
事件就是要发生的事情
C:
事件处理就是针对发生的事情做出的处理方案
D:
事件监听就是把事件源和事件关联起来
举例:
人受伤事件。
事件源:
人(具体的对象)
Personp1=newPerson("张三");
Personp2=newPerson("李四");
事件:
受伤
interface受伤接口{
一拳();
一脚();
一板砖();
}
事件处理:
受伤处理类implements受伤接口{
一拳(){System.out.println("鼻子流血了,送到卫生间洗洗");}
一脚(){System.out.println("晕倒了,送到通风处");}
一板砖(){System.out.println("头破血流,送到太平间");}
}
事件监听:
p1.注册监听(受伤接口)
FrameDemo.java
packagecn.itcast_02;
importjava.awt.Frame;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
importjava.awt.event.WindowListener;
publicclassFrameDemo{
publicstaticvoidmain(String[]args){
//创建窗体对象
Framef=newFrame("窗体关闭案例");
//设置窗体属性
f.setBounds(400,200,400,300);
//让窗体关闭
//事件源
//事件:
对窗体的处理
//事件处理:
关闭窗口(System.exit(0));
//事件监听
//f.addWindowListener(newWindowListener(){
//@Override
//publicvoidwindowOpened(WindowEvente){
//}
//
//@Override
//publicvoidwindowIconified(WindowEvente){
//}
//
//@Override
//publicvoidwindowDeiconified(WindowEvente){
//}
//
//@Override
//publicvoidwindowDeactivated(WindowEvente){
//}
//
//@Override
//publicvoidwindowClosing(WindowEvente){
//System.exit(0);
//}
//
//@Override
//publicvoidwindowClosed(WindowEvente){
//}
//
//@Override
//publicvoidwindowActivated(WindowEvente){
//}
//});
//用适配器类改进
f.addWindowListener(newWindowAdapter(){
@Override
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
//设置窗体可见
f.setVisible(true);
}
}
3针对用户的四种操作功能
UserAdaper.java
packagecn.itcast_03;
publicabstractclassUserAdapterimplementsUserDao{
@Override
publicvoidadd(){
}
@Override
publicvoiddelete(){
}
@Override
publicvoidupdate(){
}
@Override
publicvoidfind(){
}
}
UserDao.java
packagecn.itcast_03;
/*
*针对用户操作的四种功能
*/
publicinterfaceUserDao{
publicabstractvoidadd();
publicabstractvoiddelete();
publicabstractvoidupdate();
publicabstractvoidfind();
}
UserDaoDemo.java
packagecn.itcast_03;
/*
*问题:
*接口(方法比较多)--实现类(仅仅使用一个,也得把其他的实现给提供了,哪怕是空实现)
*太麻烦了。
*解决方案:
*接口(方法比较多)--适配器类(实现接口,仅仅空实现)--实现类(用哪个重写哪个)
*/
publicclassUserDaoDemo{
publicstaticvoidmain(String[]args){
UserDaoud=newUserDaoImpl();
ud.add();
//我没有说我们需要四种功能都实现啊。
UserDaoud2=newUserDaoImpl2();
ud2.add();
}
}
UserDaoImpl.java
packagecn.itcast_03;
publicclassUserDaoImplimplementsUserDao{
@Override
publicvoidadd(){
System.out.println("添加功能");
}
@Override
publicvoiddelete(){
System.out.println("删除功能");
}
@Override
publicvoidupdate(){
System.out.println("修改功能");
}
@Override
publicvoidfind(){
System.out.println("查找功能");
}
}
UserDaoImpl2.java
packagecn.itcast_03;
publicclassUserDaoImpl2extendsUserAdapter{
@Override
publicvoidadd(){
System.out.println("添加功能");
}
}
4把按钮添加到窗体
packagecn.itcast_04;
importjava.awt.Button;
importjava.awt.FlowLayout;
importjava.awt.Frame;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
/*
*需求:
把按钮添加到窗体,并对按钮添加一个点击事件。
*A:
创建窗体对象
*B:
创建按钮对象
*C:
把按钮添加到窗体
*D:
窗体显示
*/
publicclassFrameDemo{
publicstaticvoidmain(String[]args){
//创建窗体对象
Framef=newFrame("添加按钮");
//设置属性
f.setBounds(400,200,400,300);
//设置布局为流式布局
f.setLayout(newFlowLayout());
//创建按钮对象
Buttonbu=newButton("点我啊");
//bu.setSize(20,10);
//把按钮添加到窗体
f.add(bu);
//设置窗体可以关闭
f.addWindowListener(newWindowAdapter(){
@Override
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
bu.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
System.out.println("你再点试试");
}
});
//窗体显示
f.setVisible(true);
}
}
5组件添加窗体
packagecn.itcast_05;
importjava.awt.Button;
importjava.awt.FlowLayout;
importjava.awt.Frame;
importjava.awt.TextArea;
importjava.awt.TextField;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
publicclassFrameDemo{
publicstaticvoidmain(String[]args){
//创建窗体对象
Framef=newFrame("数据转移");
//设置窗体属性和布局
f.setBounds(400,200,400,300);
f.setLayout(newFlowLayout());
//创建文本框
finalTextFieldtf=newTextField(20);
//创建按钮
Buttonbu=newButton("数据转移");
//创建文本域
finalTextAreata=newTextArea(10,40);
//把组件添加到窗体
f.add(tf);
f.add(bu);
f.add(ta);
//设置窗体关闭
f.addWindowListener(newWindowAdapter(){
@Override
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
//对按钮添加事件
bu.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
//获取文本框的值
Stringtf_str=tf.getText().trim();
//清空数据
tf.setText("");
//设置给文本域
//ta.setText(tf_str);
//追加和换行
ta.append(tf_str+"\r\n");
//获取光标
tf.requestFocus();
}
});
//设置窗体显示
f.setVisible(true);
}
}
6窗体属性和布局
packagecn.itcast_06;
importjava.awt.Button;
importjava.awt.Color;
importjava.awt.FlowLayout;
importjava.awt.Frame;
importjava.awt.event.MouseAdapter;
importjava.awt.event.MouseEvent;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
publicclassFrameDemo{
publicstaticvoidmain(String[]args){
//创建窗体对象
finalFramef=newFrame("更改背景色");
//设置窗体属性和布局
f.setBounds(400,200,400,300);
f.setLayout(newFlowLayout());
//创建四个按钮
ButtonredButton=newButton("红色");
ButtongreenButton=newButton("绿色");
ButtonbuleButton=newButton("蓝色");
//添加按钮
f.add(redButton);
f.add(greenButton);
f.add(buleButton);
//设置窗体关闭
f.addWindowListener(newWindowAdapter(){
@Override
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
//对按钮添加动作事件
//redButton.addActionListener(newActionListener(){
//@Override
//publicvoidactionPerformed(ActionEvente){
//f.setBackground(Color.RED);
//}
//});
//对按钮添加鼠标点击事件
//redButton.addMouseListener(newMouseAdapter(){
//@Override
//publicvoidmouseClicked(MouseEvente){
//f.setBackground(Color.RED);
//}
//});
//对按钮添加鼠标的进入事件
redButton.addMouseListener(newMouseAdapter(){
@Override
publicvoidmouseEntered(MouseEvente){
f.setBackground(Color.RED);
}
});
redButton.addMouseListener(newMouseAdapter(){
@Override
publicvoidmouseExited(MouseEvente){
f.setBackground(Color.WHITE);
}
});
greenButton.addMouseListener(newMouseAdapter(){
@Override
publicvoidmouseEntered(MouseEvente){
f.setBackground(Color.GREEN);
}
});
greenButton.addMouseListener(newMouseAdapter(){
@Override
publicvoidmouseExited(MouseEvente){
f.setBackground(Color.WHITE);
}
});
buleButton.addMouseListener(newMouseAdapter(){
@Override
publicvoidmouseEntered(MouseEvente){
f.setBackground(Color.BLUE);
}
});
buleButton.addMouseListener(newMouseAdapter(){
@Override
publicvoidmouseExited(MouseEvente){
f.setBackground(Color.WHITE);
}
});
//设置窗体显示
f.setVisible(true);
}
}
7创建窗体并设置属性
packagecn.itcast_07;
importjava.awt.FlowLayout;
importjava.awt.Frame;
importjava.awt.Label;
importjava.awt.TextField;
importjava.awt.event.KeyAdapter;
importjava.awt.event.KeyEvent;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
/*
*你输入的如果是非数字字符,就取消你键盘录入的效果。
*/
publicclassFrameDemo{
publicstaticvoidmain(String[]args){
//创建窗体对象并设置属性
Framef=newFrame("不能输入非数字字符");
f.setBounds(400,200,400,300);
f.setLayout(newFlowLayout());
//创建Label标签对象
Labellabel=newLabel("请输入你的QQ号码,不能是非数字,不信你试试");
TextFieldtf=newTextField(40);
//添加到窗体上
f.add(label);
f.add(tf);
//设置窗体关闭
f.addWindowListener(newWindowAdapter(){
@Override
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
//给文本框添加事件
tf.addKeyListener(newKeyAdapter(){
@Override
publicvoidkeyPressed(KeyEvente){
//如果你取得的字符不是数字字符就取消事件
//思路:
先获取字符,判断字符,取消事件
//chargetKeyChar()
charch=e.getKeyChar();
//System.out.println(ch);
if(!
(ch>='0'&&ch
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javaGUI 窗口 初学者 案例 深入 分析