石臼墙话板

Java学习到的问题

2019-08-21  本文已影响5人  朱雪如_19强化班

1、为什么要使用键盘录入数据:

a 为了让程序的数据更符合开发的数据

b 让程序能够更加的灵活一些

2.键盘录入的格式:

a :导包

格式

import java.util.Scanner;

位置:

在class上面.

b :创建键盘录入对象

格式:

Scanner sc = new Scanner(System.in);

c:通过对象获取数据

格式:

int x = sc.nextInt();

3、???

System.out.println("a="+a+",b="+b);    //输出a和b的值

g=a/b;    //将a除以b的结果放在g中

System.out.println("a/b="+g+"\n");    //输出g的值

3、BufferedReader

System.in的类型可以归结为节点流、字节流、输入流;

InputStreamReader这个对象是处理流,字符流,输入流;

BufferedReader的类型是缓冲处理流、字符流、输入流。

  类 InputStreamReader是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。如:GBK

  每次调用 InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。 为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如:  BufferedReader in= new BufferedReader(new InputStreamReader(System.in));

System.in是个字节流

InputStreamReader是个字符流和字节流之间的转换中介

BufferedReader是个字符流

整体意思就是用InputStreamReader这个中介把System.in这个字节流转换成字符流BufferedReader

这样输入的时候就可以不是一个一个字节读,而是一个一个字符读,再加上是个Buffer,效率会高很多。

InputStream is = System.in;//键盘输入流

InputStreamReader isr = new InputStreamReader(is);//字节流转换为字符流

BufferedReader bufr = new BufferedReader(isr);//把字符流添加到缓冲流

用户通过reader对象的readLine方法来进行读取。

InputStreamReader 就是一个可以从 System.in 里面读取东西的管道

然后BufferedReader 就是比InputStreamReader 更高级的 更粗点的管道 可以嵌套在InputStreamReader的外面 从而实现缓冲功能 并且可以用外层管道的readLine()方法读取一行数据

依次类推 一种低级字节流管道的管道 我们可以在其外面嵌套一个更高级的数据流管道 从而更加方便的读写数据

4、.java与.javax的区别

java和javax都是Java的API包,java为java语言的核心包,javax为java语言的扩展包。

java包是java基础核心类库,也就是Java Development kit ,提供java语言编程核心包,如io、awt、集合库(如Collection、List、Map)等;

javax是java基础上的扩展包,如swing、servlet、jsp、xml等类库。

5、Icon

setIcon(Icon) - 类 javax.swing.AbstractButton 中的方法

设置按钮的默认图标。

setIcon(boolean) - 类 javax.swing.JInternalFrame 中的方法

如果外观支持图标化,则对此内部窗体执行图标化或取消图标化。

setIcon(Icon) - 类 javax.swing.JLabel 中的方法

定义此组件将要显示的图标。

setIcon(Icon) - 类 javax.swing.JOptionPane 中的方法

设置要显示的图标。

setIcon(MutableAttributeSet, Icon) - 类 javax.swing.text.StyleConstants 中的静态方法

设置图标属性。

在API中找到了这五个,但是我们一般用的就是setIcon(Icon),其中Icon类是接口,无法创建实例,所以这里的Icon一般用实现了Icon接口的ImageIcon类来代替。

举个例子:

假如你的同一个目录下有一个1.png的图片,给JLabel设置图标就可以这样:

JLabel label=new JLabel();

ImageIcon icon=new ImageIcon("1.png");

label.setIcon(icon);

6、碰撞检测

// 构造一个新的 Rectangle,其左上角的坐标为 (0,0),其宽度和高度由同名的参数指定。

public Rectangle(int width, int height)

// 构造一个新的 Rectangle,其左上角被指定为 (x,y),其宽度和高度由同名的参数指定。

public Rectangle(int x, int y, int width, int height)

和碰撞检测相关的方法:

// 计算此 Rectangle 与指定 Rectangle 的交集

public Rectangle intersection(Rectangle r)

// 确定此 Rectangle 是否与指定的 Rectangle 相交

public boolean intersects(Rectangle r)

上一篇下一篇

猜你喜欢

热点阅读