组件:javax.swing
容器组件:组件上可以继续放置组件的
顶层容器:JFrame、JWindow、JDialog
中间层容器:JPanel、JScrollPane
功能性组件:提供相应功能的组件类型
JButton、JLabel、JTextArea、JTextField…..
注意:setSize(专门只设置顶层容器)
setPrefferedSize(中间层容器、功能组件)
布局:java.awt
FlowLayout:流式布局
BorderLayout:边框布局
GridLayout:网格布局
null:绝对布局(setBounds)
规范:
命令规范:
1、不要太随意,通过当前这个类的功能进行命名
2、名字遵循驼峰式命名法:除了第一个单词有特殊性情况外,后面每个单词的首字母必须大写
类:第一个单词的首字母也大写
属性名:第一个单词的首字母小写
方法名:第一个单词的首字母小写
包名规则:递进式,多级包名:com/cn.公司名字.包的功能名
所有单词全部小写
注释规范:
类的注释:/**
* 注释说明
* @author
**/
方法注释:
/**
* 实现加法操作的函数
* @param a 参数,用于方法内部使用,提供值得引导
* @return 运行后的结果
*/
指定行代码注释://注释内容
加号在编程中的作用
连接符:把两个内容连接起来,形成一个新的内容 “a”+”b” = “ab”
加号两边如果有任何一遍是字符串,则就是当连接符使用,得到的结果依然是字符串
运算符:数学里面的加法运算 1+2 = 3
加号两边如果都是基本数据类型(int、float、double、char、byte),就是运算符,结果依然是基本数据类型
String字符串类
可以用于存储当前字符串的值
赋值操作:1)直接赋值法 2)构造对象法
==:是判断内存地址是否相同
字符串判断:equals方法
监听实现
抽象类和接口复习
方法分类:普通方法、抽象方法、构造方法
类的分类:普通类、抽象类、接口
抽象类和接口作用:不能创建对象,只能被继承来约束子类方法定义
普通类:员工
抽象类:中层管理员 (适配器)
接口:顶层老板
监听器分析
定义:用于监听工具中某些操作事件的对象,就类似于生活中的监控
案例:从一个界面跳转到另外一个界面
//定义一个窗体
public class MyFrame extends JFrame{
public void initFrame(){
this.setSize(300,300);
this.setDefaultCloseOperation(3);
this.setLocationRelativeTo(null);
this.setLayout(new FlowLayout());
JButton button = new JButton("跳转到另外一个界面");
this.add(button);
this.setVisible(true);
//给按钮添加一个监听器(事件监听:ActionListener)
ButtonListener bl = new ButtonListener();
//把事件监听器对象绑定到按钮上
button.addActionListener(bl);
}
}
//定义第二个窗体
public class NextFrame extends JFrame{
public void initFrame(){
this.setSize(300,300);
this.setDefaultCloseOperation(3);
this.setLocationRelativeTo(null);
this.setLayout(new FlowLayout());
JLabel label = new JLabel("我是第二个界面");
this.add(label);
this.setVisible(true);
}
}
//定义事件监听器
public class ButtonListener implements ActionListener{
/**
* 监听方法:当你触发了当前这个监听器对象后,这个方法会自动执行
*/
public void actionPerformed(ActionEvent e) {
//在点击按钮后自动执行的
NextFrame nf = new NextFrame();
nf.initFrame();
}
}
//主函数
public class Test {
public static void main(String[] args) {
MyFrame mf = new MyFrame();
mf.initFrame();
}
}
分类:鼠标监听器、事件监听器、键盘监听器
事件监听器:重点是给按钮添加(JButton、JRadioButton、JMenuItem)
鼠标监听器:在指定范围内监听鼠标的动作(按下、释放、点击、移动、拖动..)
一般是用于监听容器组件(JPanel、JWindow、JFrame)
键盘监听器:监听在指定范围内,键盘的操作(按下、释放)
案例:绘特殊图形的鼠标监听实现
public class DrawListener implements MouseListener{
public Graphics g;
public ButtonGroup bg;
//定义全局的坐标
public int x1,y1,x2,y2;
//定义一个变量,用于控制当前图形绘制的类型
public String type="0";
public DrawListener(Graphics g,ButtonGroup bg){
//此处的画笔和单选按钮是窗体传过来的
this.g = g;
this.bg = bg;
}
/**
* e参数:记录当前鼠标按下后所有相关数据的
*/
public void mousePressed(MouseEvent e) {
//1.记录按下的时候的坐标
x1 = e.getX();
y1 = e.getY();
//从按钮组中来检验被选中按钮是哪个?
ButtonModel bm = bg.getSelection();
String command = bm.getActionCommand();
type = command;
}
public void mouseReleased(MouseEvent e) {
//2.获取释放点的坐标
x2 = e.getX();
y2 = e.getY();
//3.两点绘制图形(画笔:Graphics)
if(type.equals("0")){
g.drawLine(x1, y1, x2, y2);
}else if(type.equals("1")){
g.drawRect(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x2-x1), Math.abs(y2-y1));
}else if(type.equals("2")){
g.drawOval(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x2-x1), Math.abs(y2-y1));
}
}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
}
Java提供的监听机制:
从属包:java.awt.event
事件监听:ActionListener
鼠标监听:MouseListener、MouseMotionListener、MouseWheelListener
键盘监听:KeyListener
什么情况下会形成点击操作?1)按下和释放合起来 2)按下和释放在同一个位置
相应监听动作分析:
ActionListener:监听按钮被触发的事件(只有一个方法需要实现)
MouseListener:监听鼠标的相应动作(按下、释放、进入、退出、点击)
KeyListener:监听键盘的相应动作