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相关推荐

  1. JAVA自学笔记07

    JAVA自学笔记07 1.构造方法 1) 例如:Student s = new Student();//构造方法 System.out.println(s);// Student@e5bbd6 2)功 ...

  2. JAVA自学笔记24

    JAVA自学笔记24 1.能使用同步代码块就使用同步代码块,除非锁对象是this,就可以考虑使用同步方法.静态方法的锁是类的字节码对象. 2.JDK5新特性 1)接口Lock void Lock()/ ...

  3. JAVA自学笔记22

    JAVA自学笔记22 1.操作基本数据类型的流 DataInputStream DataOutputStream 数据输出流允许应用程序以适当方式将基本的Java数据类型写入输出流中.然后,应用程序可 ...

  4. JAVA自学笔记21

    JAVA自学笔记21 1.转换流 由于字节流操作中文不是非常方便,因此java提供了转换流 字符流=字节流+编码表 1)编码表 由字符及其对应的数值组成的一张表 图解: 2)String类的编码和解码 ...

  5. JAVA自学笔记08

    JAVA自学笔记08 1.构造方法私有,外界就不能再创建对象 2.说明书的制作过程 1)写一个工具类,在同一文件夹下,测试类需要用到工具类,系统将自动编译工具类:工具类的成员方法一般是静态的,因此在测 ...

  6. JAVA自学笔记23

    JAVA自学笔记23 1.多线程 1)引入: 2)进程 是正在运行的程序.是系统进行资源分配和调用的独立单位.每一个进程都有它自己的内存空间和系统资源. 多进程: 单进程的计算机只能做一件事情,而现在 ...

  7. Java自学笔记——Java面向对象——04.抽象类、接口、内部类

    Java 面向对象各节 Java自学笔记--Java面向对象--01.回顾方法 Java自学笔记--Java面向对象--02.构造器.类和对象 Java自学笔记--Java面向对象--03.封装.继承 ...

  8. 廖雪峰Java自学笔记------Java简洁

    廖雪峰Java自学笔记------Java简洁 这是专门针对小白的零基础Java教程. 为什么要学Java? 因为Java是全球排名第一的编程语言,Java工程师也是市场需求最大的软件工程师,选择Ja ...

  9. Java自学笔记总结04

    Java自学笔记04 一.Lambda表达式 1.1 函数式编程思想概述 1.2 体验Lambda表达式 1.3 Lambda表达式的标准格式 1.4 Lambda表达式的使用 1.5 Lambda表 ...

最新文章

  1. 实时风格迁移,移动端运行,人脸特效又有了新玩法
  2. 她在博士阶段破釜沉舟转换研究方向后,发表了32篇SCI
  3. NO ULINK Device found解决方法
  4. 文件copy模块shutil
  5. python3基础知识_python3基础知识梳理
  6. 进程间关系和守护进程
  7. Unicode和Ascii转byte,Unicode占二个byte,Ascii占一个byte
  8. nlp cs224n 学习笔记1 Introduction and Word Vectors
  9. Pytorch:比较函数
  10. 为什么办理房产证要经过开发商和物业?
  11. 移动web app开发必备 - zepto事件问题
  12. 如何获得Android设备名称(ADB命令详细介绍)
  13. 再看网路层分组的转发
  14. 2022年3月23日蜻蜓q旗舰版v1.2.1重大性能更新-优化加载列表数据方式-更加丝滑-后端增加goeasy
  15. HTML页面浏览历史,浏览历史记录功能
  16. 磁珠特性以及选型注意事项
  17. 我做产品的三大思维:发散思维、纵横思维和表里思维(下篇)
  18. [附源码]java毕业设计咖啡销售管理系统-
  19. [Slides notes] Other notes using Excel
  20. 【安全牛学习笔记】COWPATTY 破解密码

热门文章

  1. 【CodeForces - 705C】Thor(模拟,STLset优化链表)
  2. *【Hihocoder - offer编程练习赛94 - A】最短管道距离(中位数)
  3. 特殊mac地址文档_Mac颜值秒杀Win10?五款神器让Win10化身macOS
  4. CSS中属性个属性值怎么区分,[CSS] 详细解释 @media 属性与 (max
  5. 列模式 文本编辑器_UltraEdit 24.2 文本编辑器免费版
  6. 学习笔记9-C语言-传参、类型限定符、递归
  7. 倒果汁c语言,水果榨汁补维生素C?这些补维生素的错误别再犯了
  8. mysql pydev_pydev-python 链接mysql数据库(mac系统)
  9. 剑指offer之矩阵中的路径
  10. leetcode设计链表,非常工整的实现你值得拥有