TextArea
表示Java文本区,文本区支持用户输入多行文本。
TextArea():构造方法,创建文本区对象的行数和列数,取默认值。
TextArea常见方法
- public void setText(String s)
设置文本区中的文本为s - public void getText()
获取文本区中的文本 - public void append(String s)
在文本尾部追加文本 - public void addTextListener(TextListener)
向文本区中添加文本监视器
当然还有很多方法,这里并没有详细列出。
未写的一些方法默认表示:默认文本可编辑等
文本区上的event事件
- 当文本区的内容发生变化时(如:插入字符,删除字符),TextEvent类将自动创建一个事件对象。
- 发生TextEvent事件的事件源获得监视器的方法是addTextListener(监视器)。
- 处理发生TextEvent事件的接口是TextListener,接口中需要被重写的方法是:
textValueChanged(TextEvent e)
例子:TextArea的使用
//创建文本域
//构造方法,创建的文本区的行数和列数取默认值,默认可编辑
textArea = new TextArea();
//设置文本区域位置和大小
textArea.setBounds(0, 0, mf.getWidth(),mf.getHeight());
textArea.setBackground(Color.WHITE);//设置背景颜色
//new Font(String 字体,int 风格,int 字号),Font.PLAIN或者0:普通字体
textArea.setFont(new Font("楷体",0,16));
mf.add(textArea);
mf.setVisible(true);
FileDialog
用于创建一个具有指定标题的文件对话框窗口,用于加载或保存文件。
构造函数:
FileDialog(Frame mf,String title,int mode):以指定的标题创建一个读取或保存文件的文件对话框窗口。
mf表示的是窗体对象,表示窗体对象拥有该文件对话框,title表示文件对话框窗口的标题名。
mode为对话框模式,它有两种:
- FileDialog.LOAD
该常量值确定从哪里读取文件。 - FileDialog.SAVE
确定向哪里写入文件。
FileDialog常用方法
- getDirectory()
获取该文件对话框的目录。 - getFile()
获取该文件对话框所选中的文件 - setDirectory(String s)
将该文件对话框窗口的目录设置为指定的目录 - setFile(String s)
将该文件对话框窗口的选定文件设置为指定的文件
文件路径 = getDirectory()+getFile()
BufferedReader和BufferedWriter
这两个类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后如果使用了read()方法,会先从缓冲区中进行读取。如果缓冲区中数据不足,再从文件中读取;使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。
readLine()方法会在读取到使用者的换行字符时,再将整行字符传入。
FileReader
按字符读取流中数据。
构造方法:
- FileReader(File file)
在给定从中读取数据的File情况下创建一个新的FileReader。 - FileReader(String filename)
在给定从中读取数据的文件名的情况下创建一个新的FileReader。
FileReader常用方法
- public int read() throws IOException
读取单个字符,返回一个int型变量代表读取到的字符。 - public int read(char[] c,int offset,int len)
读取字符到c数组,返回读取到字符的个数。
例子:打开文件操作
FileDialog dia_Open = new FileDialog(mf,"打开文件",FileDialog.LOAD);
dia_Open.setVisible(true);//对话框可见
BufferedReader in;//文件缓冲流对象
textArea.setText(null);//清空内容
/*
* dia_Open.getDirectory():获取文件上一级路径
* dia_Open.getFile():获取文件名
* dia_Open.getDirectory()+dia_Open.getFile():获取文件完整路径
*/
try {
in = new BufferedReader(new FileReader(dia_Open.getDirectory()+dia_Open.getFile()));
try {
while((str = in.readLine())!=null) {//in.readLine():读取一整行,到换行符但不包括换行符
c = str.toCharArray();//将字符串拆成数组
a = new int[str.length()];//存储字符串的ASCII值
str = String.valueOf(c);//将char转为String
textArea.append(str+"\n");//字符串末尾换行
}
in.close();//关闭
mf.setTitle(dia_Open.getFile()+" - 记事本");
} catch (IOException e1) {
e1.printStackTrace();
}
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
例子:保存文件操作
FileDialog dia_Save = new FileDialog(mf,"保存文件",FileDialog.SAVE);
dia_Save.setVisible(true);
FileOutputStream out;//文件输出流对象
//存为txt格式,文件名为输入的字符串
try {
out = new FileOutputStream(dia_Save.getDirectory()+dia_Save.getFile()+".txt");
str = textArea.getText().replace("\n", "\r\n");//获取文本域内容,并将"\n"换成"\r\n",回车换行一次搞定
c = str.toCharArray();//将字符串拆成char[]数组
a = new int[str.length()];//用于存储字符串的ASCII值
str = String.valueOf(c);//将char转化为String
try {
out.write(str.getBytes());
out.flush();
out.close();
mf.setTitle(dia_Save.getFile()+" - 记事本");
} catch (IOException e1) {
e1.printStackTrace();
}
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}