JAVA自学笔记25
JAVA自学笔记25
1、GUI
1)图形用户接口,以图形的方式,来显示计算机操作的界面,更方便更直观
2)CLI
命令行用户接口,就是常见的Dos,操作不直观
3)
类Dimension
类内封装单个对象组件中组件的宽度和高度(精确到整数)
Dimension(int width,int height);
类Point
//窗体案例
Frame f=new Frame();//也可通过带参构造设置标题String title,//设置窗体标题
f.setTitle("dd");
//设置窗体大小
//f.setSize(100,200);
Dimension d=new Dimension(100,200);
//设置窗体位置//f.setLocation(400,200);
Point p=new Point(400,200);
f.location(p);//f.setBounds(int x.int y,int width,int height);//同时设置坐标及长宽Thread.sleep(3000);//休眠3秒再弹出
f.setVisible(true);
2、事件监听器
1)把事件源和事件关联起来
2)
//窗体关闭案例
Frame f=new Frame();
f.setTitle("dd");
f.setBounds(100,200,300,400);/
Thread.sleep(3000);
//事件监听
f.addWindowListener(new WindowListener()
{
public void WindowClosing(WindowEvent e){
System.exit(0);
}
});
f.setVisible(true);
3)适配器设计模式
接口须重写方法较多且不需都实现时,可提供一个适配器类(仅仅空实现即可),在实现类重写即可
接口–适配器–实现类
WindowAdapter
适配器类
//窗体关闭案例
Frame f=new Frame();
f.setTitle("dd");
f.setBounds(100,200,300,400);
Thread.sleep(3000);f.addWindowListener(new WindowAdapte(){
public void windowClosing(WindowEvent e);{
System.exit(0);
}
});
f.setVisible(true);
4)布局
//窗体添加按钮并对按钮添加事件
//使用流式布局
Frame f=new Frame();
f.setTitle("dd");
f.setBounds(100,200,300,400);
Thread.sleep(3000);
//设置布局为流式布局
f.setLayout(new FlowLayout());//创建按钮对象
Button bu=new Button("按钮");
bu.setSize(10,20);//把按钮添加到窗体//设置窗体可以关闭
f.addWindowListener(new WindowAdapte(){
public void windowClosing(WindowEvent e);{
System.exit(0);
}
});//设置点击事件
bu.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println("success");
}
});
f.setVisible(true);
//把文本框的值转移到文本域
//创建窗体对象
Frame f=new Frame("数据转移");
//设置窗体属性和布局
f.setBounds(100,500,633,100);
f.setLayout(new FlowLayout());//创建文本框
final TextField tf=new TextField(20);//文本框内可放20个字符
//创建按钮
Button bu=new Button("数据转移");
//创建文本域
final TextAreas ta=new TextArea(10,40);
//
//对按钮添加事件
bu.addActionListener(new ActionListener)(){
ppublic void actionPerformed(ActionEvent e){
//获取文本框的值
String tf_str=tf.getText().trim();//设置给文本域并换行
ta.append(tf_stf+"\r\n");
}
//获取光标
tf.requestFocus();//清空文本框数据
tf.setText("");
});
//把组件添加到窗体
f.add(tf);
f.add(bu);
f.add(ta);//设置窗体关闭
f.addWindowListener(new WindowAdapte(){
public void windowClosing(WindowEvent e);{
System.exit(0);
}
});
//设置窗体显示
f.setVisible(true);
//更改背景色
//创建窗体对象
final Frame f=new Frame("更改背景色");
//设置窗体属性和布局
f.setBounds(100,500,633,100);
f.setLayout(new FlowLayout());//创建四个按钮
Button redButton=new Button("red");f.add(redButton);//设置窗体关闭
f.addWindowListener(new WindowAdapte(){
public void windowClosing(WindowEvent e);{
System.exit(0);
}
});
//对按钮添加动作事件
/*redButton.addActionLostener(new ActionLister(){
public void actionPerformed(ActionEvent e){
f.setBackground(Color.RED);
}
});*///对按钮添加鼠标点击事件
/*redButton.addMouseListener(new MouseAdapter(){
public mouseClicked(MouseEvent e){
f.setBackground(color.RED);
}
});*///对按钮添加鼠标的进入事件
redButton.addMouseListener(new MouseAdapter)(){
public void mouseEntered(MouseEvent e){
f.setBackground(color.RED);
}
});//对按钮添加鼠标的离开事件
redButton.addMouseListener(new MouseAdapter)(){
public void mouseExited(MouseEvent e){
f.setBackground(color.WHITE);
}
});//设置窗体显示
f.setVisible(true);
//控制文本框只能输入数字字符
//创建窗体对象
final Frame f=new Frame("只能输入数字字符");
//设置窗体属性和布局
f.setBounds(100,500,633,100);
f.setLayout(new FlowLayout());//创建Label标签对象
Label label=new Label("请输入QQ号码仅为数字");
TextFiled tf=new TextField(40);//为文本框添加事件
tf.addKeyListener((new) KeyAdapter({
public void KeyPressed(KeyEvent e){
char ch=e.getKeyChar();
if(!(ch>='0'&&ch<='9')){}
e.consume();//使用此事件,以便不会按照默认的方式由产生的源代码来处理此事件
}
});//添加到窗体上
f.add(label);
f.add(tf);//设置窗体显示
f.setVisible(true);
//设置窗体关闭
f.addWindowListener(new WindowAdapte(){
public void windowClosing(WindowEvent e);{
System.exit(0);
}
});
菜单组件:
//一级菜单案例
//创建窗体对象
final Frame f=new Frame("只能输入数字字符");
//设置窗体属性和布局
f.setBounds(100,500,633,100);
f.setLayout(new FlowLayout());//创建菜单栏
MenuBar mb=new MenuBar();//创建菜单
Menu m=new Menu("文件");
//创建菜单项
MenuItem mi=new MenuItem("退出系统");
//
m.add(mi);
mb.add(m);//设置菜单栏
f.setMenuBar(mb);mi.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});//设置窗体显示
f.setVisible(true);
//设置窗体关闭
f.addWindowListener(new WindowAdapte(){
public void windowClosing(WindowEvent e);{
System.exit(0);
}
});
//设置多级别菜单
final Frame f=new Frame("设置多级菜单");
//设置窗体属性和布局
f.setBounds(100,500,633,100);
f.setLayout(new FlowLayout());//创建菜单栏
MenuBar mb=new MenuBar();//创建菜单
Menu m1=new Menu("文件");
Menu m2=new Menu("更改名称");
//创建菜单项
MenuItem mi1=new MenuItem("退好好学习");
MenuItem mi2=new MenuItem("天天向上");
MenuItem mi3=new MenuItem("恢复标题");
MenuItem mi4=new MenuItem("退打开记事本");
MenuItem mi5=new MenuItem("退出系统");
//
m2.add(mi1);
m2.add(mi2);
m2.add(mi3);m1.add(m2);
m1.add(mi4);
m1.add(mi5);//设置菜单栏
f.setMenuBar(mb);//设置事件
mi5.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});//设置事件
mi4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Runtime r=Runtime.getRuntime();
r.exec("notepad");
}
});//设置事件
mi1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
f.setTitle(mi1.getLabel());
}
});//设置事件
mi2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
f.setTitle("多级菜单");
}
});//设置事件
mi3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
f.setTitle(mi1.getLabel());
}
});//设置窗体关闭
f.addWindowListener(new WindowAdapte(){
public void windowClosing(WindowEvent e);{
System.exit(0);
}
});//设置窗体显示
f.setVisible(true);
4、Netbeans
1)界面开发常用
//修改窗体图标
public class UiUtill{
private Uiutil(){}
public static void setFrameImage(JFrame jf){
//获取工具类对象
Toolkit tk=ToolKit.getDefaultToolKit();
//根据路径获取图片
Image i=tk.getImage("src\\cn\\itcast\\resource\\a.jpg");
//给窗体设置图片
jf.setIconImage(i);}
}
//设置窗体居中
//获取工具对象
Toolkit tk=Toolkit.getDefaultTookit();//获取屏幕宽高
Dimension d=tk.getScreenSize();
double screenWidth=d.getWidth();
double screenHeight=d.getHeight();
//获取窗体宽高
int frameWidth=jf.getWidth();
int frameHeight=jf.getHeight();//获取新的宽高
int width=(int)(screenWidth-frameWidth)/2;
int height=(int)(screenHeight-frameHeight)/2;
转载于:https://www.cnblogs.com/Tanqurey/p/10485337.html
JAVA自学笔记25相关推荐
- JAVA自学笔记07
JAVA自学笔记07 1.构造方法 1) 例如:Student s = new Student();//构造方法 System.out.println(s);// Student@e5bbd6 2)功 ...
- JAVA自学笔记24
JAVA自学笔记24 1.能使用同步代码块就使用同步代码块,除非锁对象是this,就可以考虑使用同步方法.静态方法的锁是类的字节码对象. 2.JDK5新特性 1)接口Lock void Lock()/ ...
- JAVA自学笔记22
JAVA自学笔记22 1.操作基本数据类型的流 DataInputStream DataOutputStream 数据输出流允许应用程序以适当方式将基本的Java数据类型写入输出流中.然后,应用程序可 ...
- JAVA自学笔记21
JAVA自学笔记21 1.转换流 由于字节流操作中文不是非常方便,因此java提供了转换流 字符流=字节流+编码表 1)编码表 由字符及其对应的数值组成的一张表 图解: 2)String类的编码和解码 ...
- JAVA自学笔记08
JAVA自学笔记08 1.构造方法私有,外界就不能再创建对象 2.说明书的制作过程 1)写一个工具类,在同一文件夹下,测试类需要用到工具类,系统将自动编译工具类:工具类的成员方法一般是静态的,因此在测 ...
- JAVA自学笔记23
JAVA自学笔记23 1.多线程 1)引入: 2)进程 是正在运行的程序.是系统进行资源分配和调用的独立单位.每一个进程都有它自己的内存空间和系统资源. 多进程: 单进程的计算机只能做一件事情,而现在 ...
- Java自学笔记——Java面向对象——04.抽象类、接口、内部类
Java 面向对象各节 Java自学笔记--Java面向对象--01.回顾方法 Java自学笔记--Java面向对象--02.构造器.类和对象 Java自学笔记--Java面向对象--03.封装.继承 ...
- 廖雪峰Java自学笔记------Java简洁
廖雪峰Java自学笔记------Java简洁 这是专门针对小白的零基础Java教程. 为什么要学Java? 因为Java是全球排名第一的编程语言,Java工程师也是市场需求最大的软件工程师,选择Ja ...
- Java自学笔记总结04
Java自学笔记04 一.Lambda表达式 1.1 函数式编程思想概述 1.2 体验Lambda表达式 1.3 Lambda表达式的标准格式 1.4 Lambda表达式的使用 1.5 Lambda表 ...
最新文章
- 实时风格迁移,移动端运行,人脸特效又有了新玩法
- 她在博士阶段破釜沉舟转换研究方向后,发表了32篇SCI
- NO ULINK Device found解决方法
- 文件copy模块shutil
- python3基础知识_python3基础知识梳理
- 进程间关系和守护进程
- Unicode和Ascii转byte,Unicode占二个byte,Ascii占一个byte
- nlp cs224n 学习笔记1 Introduction and Word Vectors
- Pytorch:比较函数
- 为什么办理房产证要经过开发商和物业?
- 移动web app开发必备 - zepto事件问题
- 如何获得Android设备名称(ADB命令详细介绍)
- 再看网路层分组的转发
- 2022年3月23日蜻蜓q旗舰版v1.2.1重大性能更新-优化加载列表数据方式-更加丝滑-后端增加goeasy
- HTML页面浏览历史,浏览历史记录功能
- 磁珠特性以及选型注意事项
- 我做产品的三大思维:发散思维、纵横思维和表里思维(下篇)
- [附源码]java毕业设计咖啡销售管理系统-
- [Slides notes] Other notes using Excel
- 【安全牛学习笔记】COWPATTY 破解密码
热门文章
- 【CodeForces - 705C】Thor(模拟,STLset优化链表)
- *【Hihocoder - offer编程练习赛94 - A】最短管道距离(中位数)
- 特殊mac地址文档_Mac颜值秒杀Win10?五款神器让Win10化身macOS
- CSS中属性个属性值怎么区分,[CSS] 详细解释 @media 属性与 (max
- 列模式 文本编辑器_UltraEdit 24.2 文本编辑器免费版
- 学习笔记9-C语言-传参、类型限定符、递归
- 倒果汁c语言,水果榨汁补维生素C?这些补维生素的错误别再犯了
- mysql pydev_pydev-python 链接mysql数据库(mac系统)
- 剑指offer之矩阵中的路径
- leetcode设计链表,非常工整的实现你值得拥有