常用API(1)

1.API概述

什么是API?

  • 别人或公司提供的类供我们使用,这些类就是API,例如:你同桌提供给你一些类,团队老大提供给你 一些类,java提供给你一些类

学习一个API的时候,我们重点要看四个地方:

  • 第一个地方:看类所在的包

因为java.lang包下的类,我们是可以直接使用的,不需要导包。 其他包下的类,我们都是要导包后才能使用的

  • 第二个地方:看类的描述
  • 第三个地方:看类的构造方法
  • 第四个地方:看 类的成员方法

1.2 包和导包

那什么是包呢?

  • 包其实就是文件夹
  • 作用:对类进行分类管理

包的定义格式:

  • 格式:package 包名;
  • 注意:包名一般是公司域名反写,并且多级包用.分开
  • 举例:www.itheima.com
  • 范例:package com.itheima;

导包的格式

  • 格式:import 包名;
  • 范例:import com.itheima.Student;

2:Scanner

2.1 Scanner基本使用

Scanner:

  • 一个简单的文本扫描程序,可以获取基本类型数据和字符串数据

构造方法:

  • Scanner(InputStream source):创建 Scanner 对象
  • System.in:对应的是InputStream类型,可以表示键盘输入
Scanner sc = new Scanner(System.in);

成员方法:

  • int nextInt():获取一个int类型的数据
  • int i = sc.nextInt();
// 例
int number = sc.nextInt();
String str = sc.next();

double count = sc.nextDouble();

3:Random

3.1 Random基本使用

Random:

  • 该类的实例用于生成随机数

构造方法:

  • Random(): 创建一个新的随机数生成器

成员方法:

  • int nextInt(int bound):获取一个int类型的随机数,参数bound表示获取到的随机数在[0,bound)之间 

4:GUI(图形用户接口)

4.1 GUI概述

  • java.awt 包

awt是这三个单词首字母的缩写,翻译过来是抽象窗口工具包,只不过这个包的API,需要调用本地系 统方法实现功能,和本地系统有关联,不利于代码移植,属重量级控件

  • javax.swing 包

它是在awt的基础上,建立的一套图形界面系统,提供了更多的组件,而且完全由Java实现。增强了移 植性,属轻量级控件

做开发使用的是swing包下的类

组件

  • 基本组件:具有图形表示的对象
  • 容器组件:是可以添加组件的组件。也就是在容器中可以通过add方法添加组件,既可以添加基本组件,也可 以添加容器组件。

看常用的基本组件:

  • JButton,这是按钮
  • JLabel,这是用来显示文本内容的,或者展示图片使用
  • JTextFile,这是文本框,用来输入内容的
  • JTextArea,这是文本域,用来输入多行多列的数据的
  • JPanel 面板,创建面板的时候也要定义绝对定位,   调用setLayout(null); 方法

 4.2 常用组件

4.2.1 JFrame(初识窗体)

JFrame:

  • 是一个顶层窗口

构造方法

  • JFrame():构造一个最初不可见的新窗体,  要用setVisible(true) 方法显示出来

成员方法:

  • void setVisible(boolean b):显示或隐藏此窗体具体取决于参数b的值
  • void setSize(int width, int height):调整此组件的大小,使其宽度为width,高度为height,单位是像素

4.2.2 JFrame(常用设置)

void setTitle(String title):设置窗体标题
void setSize(int width, int height); 设置窗口大小
void setLocationRelativeTo(Component c):设置位置,值为null,则窗体位于屏幕中央
void setDefaultCloseOperation(int operation):设置窗体关闭时默认操作 
整数3表示:窗口关闭时退出应用程序
void setAlwaysOnTop(boolean alwaysOnTop):设置此窗口是否应始终位于其他窗口之上 true/ falsee
void setLayout(LayoutManager manager); 若为null值,是绝对定位  
布局指的就是组件如何在窗体上进行排列摆放 设为null表示采用绝对定位
(以窗体左上角为坐标原点)

void setVisible(true); 设置窗口可见

补充:
jf.getContentPane().setBackground(Color.blue); 设置窗体背景色

4.2.3 JButton(窗口中添加按钮)

JButton:
按钮的实现
构造方法:
JButton(String text):创建一个带文本的按钮
成员方法:
void setSize(int width, int height):设置大小
void setLocation(int x, int y):设置位置(x坐标,y坐标)
 一般用 setBounds(int x, int y, int width, int height);一次性赋值

补充其他方法:
setBackground  setForeground 
背景 和  前景(字体颜色)

setEnabled(false); 参数为false时,改按钮不可点击,为true时可以点击

4.2.4 JLabel(显示文本和图像)

JLable:
短文本字符串或图像的显示区域
构造方法:
JLabel(String text):使用指定的文本创建 JLabel实例
JLabel(Icon image):使用指定的图像创建 JLabel实例
ImageIcon(String filename):从指定的文件创建ImageIcon
文件路径:绝对路径和相对路径
绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件
例如:D:\IdeaProjects\javase_code\itheima-api-gui\images\mn.png
相对路径:必须使用取自其他路径名的信息进行解释
例如:itheima-api-gui\images\mn.png

用相对定位好

成员方法:
void setBounds(int x, int y, int width, int height):设置位置和大小

 4.2.5 JTextArea 

和其他一样,有setBounds();方法

补充:

对象名.append();该方法可以连续加入字符串,不会删除之前加入的字符串

4.2.6JOptionPane类(弹窗)

该类可以直接调用showMessageDialog(JFrame jf, String str);静态方法,第一个参数是jf窗口,第二个对象是弹窗显示的文本

例:  JOptionPane.showMessageDialog( jf,  "输入错误!") ;

4.2.7 JPanel(面板)

JPanel panel = new JPanel();
//移除面板上的所有组件

panel.removeAll();

//重新绘制组件,相当于刷新功能
panel.repaint();

4.3 案例5(考勤查询之日历控件)

需要有个日历控件类(DateChooser.java)

创建日历对象

DateChooser dateChooser1 = DateChooser.getInstance("yyyy/MM/dd");

和文本绑定

dateChooser1.reqiser(startDateField) 参数为文本框对象

4.4 事件监听机制

事件监听机制的组成:

  • 事件源:事件发生的地方。可以是按钮,窗体,图片等
  • 事件:发生了什么事情。例如:鼠标点击事件,键盘按下事件等
  • 事件绑定:把事件绑定到事件源上,当发生了某个事件,则触发对应的处理逻辑

事件源对象. addXXXListener(事件);

代码:

button对象.addActionListener(new ActionListener) 敲这个直接出来


jButton.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {

}
});

5.System

特点: 所有的方法都是静态的, jdk也不希望我们创建对象, 因为直接可以拿类名调用,不需要创建, 构造函数给私有化了!!!!!

功能:

  • static void exit(int status);
    • 0 正常终止
    • 1 异常终止
  • static long currentTimeMillis()  
    • 获取当前时间的毫秒值
    • 作用: 测试程序运行的时间用的
  • static void arraycopy(Object 原数组, int 开始索引, Object 目标数组, int 目标开始的索引, int 拷贝个数) 

6.Math

特点:所有的方法都是静态的, jdk也不希望我们创建对象, 因为直接可以拿类名调用,不需要创建, 构造函数给私有化了!!!!!

功能:

  • static int ceil(double number) 向上取整
  • static int floor(double number)  向下取整
  • static double abs(double number) 求一个数绝对值
  • static double pow(double num1, double num2); 求num1的num2次幂!!!!!!

7.Object

外类的祖宗, 一个类如果没有显示继承任何类, 默认继承Object

结论:Object的功能所有类都可以用!!!!

功能

  • String toString()
    • 默认返回的是带@符号的地址值
    • 使用场景
      • 重写这个方法, 不要打印地址, 打印对象中的属性内容!!!!
      • alt + insert ---> toString
  • boolean equals(Object obj)
    • 默认Object中实现的方式还是用 ==判断, 比较依然是地址
    • 使用场景
      • 重写这个方法, 不让其比较地址, 比较内容
      • alt + insert ----> equals&hashcode

8.BigDecimal

构造

  • BigDecimal(String val) 传入字符串类型的小数是精准的!!!!!!
  • BigDecimal(double val)  因为的double类型在底层无限接近的值, 不是精准值!!!!!!

注意

  • BigDecimal是一个引用数据类型, 不是基本类型, 所以无法直接使用+,-,*,/这些运算符号,只能通过方法来操作, 而方法底层, 就是取出底层维护的数字在进行+,-,*,/

功能

  • BigDecimal add(BigDecimal augend)  
    • 一个BigDecimal和另外一个BigDecimal的对象进行相加, 返回新的BigDecimal,老的不变!!!!
  • BigDecimal subtract(BigDecimal subtrahend)  
    • 一个BigDecimal和另外一个BigDecimal的对象进行相减, 返回新的BigDecimal,老的不变!!!!
  • BigDecimal multiply(BigDecimal multiplicand)  
    • 一个BigDecimal和另外一个BigDecimal的对象进行相乘, 返回新的BigDecimal,老的不变!!!!
  • BigDecimal divide(BigDecimal divisor)  
    • 一个BigDecimal和另外一个BigDecimal的对象进行相除, 返回新的BigDecimal,老的不变!!!!
    • 必须能够被除尽才能使用该方法!!!!!
  • BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)  
    • divisor 是除数
    • scale  保留的位数
    • roundingMode 
      • 舍弃的规则
        • BigDecimal.ROUND_HALF_UP  四舍五入
        • BigDecimal.ROUND_FLOOR   向下
        • BigDecimal.ROUND_CEILING  向上
  • BigDecimal setScale(int newScale, int roundingMode)  
    • 设置保留的位数, 舍入方式
      • BigDecimal.ROUND_HALF_UP  四舍五入
      • BigDecimal.ROUND_FLOOR   向下
      • BigDecimal.ROUND_CEILING  向上

使用场景:一般在金融方面的开发才会使用到, 其他地方很少接触!!!!!!!

作用:让小数的变得精确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值