1.首先编出界面部分
setLayout(null);定义可自定义组件位置;setBounds(x,y,width,height)定义组件的界限(绝对位置)
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class TestEdit extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
JButton button1=new JButton("保存");
JButton button2=new JButton("取消");
JButton button3=new JButton("退出");
static JTextArea text1=new JTextArea("");
public TestEdit() {
setLayout(null);
text1.setBounds(0,0,400,120);
button1.setBounds(95,130,60,25);
button2.setBounds(170,130,60,25);
button3.setBounds(245,130,60,25);
add(text1);
add(button1);
add(button2);
add(button3);
public static void main(String[] args) {
// TODO Auto-generated method stub
TestEdit f=new TestEdit();
f.setTitle("文本编辑器");
f.setSize(400,200);
TestEdit.readFile();
f.setVisible(true);
}
}
2.为框架中的组件添加功能(监听器及事件处理)
监听器+事件处理 我采用的是 组件+增加监听器(new 监听器){事件处理}的格式,让代码整体层次分明,读起来简明易懂.此代码主要实现了文本文件的创建、保存以及读取.
text1.getDocument().addDocumentListener(new DocumentListener(){
@Override
public void insertUpdate(DocumentEvent e) {
// TODO Auto-generated method stub
}
@Override
public void removeUpdate(DocumentEvent e) {
// TODO Auto-generated method stub
}
@Override
public void changedUpdate(DocumentEvent e) {
// TODO Auto-generated method stub
}
});
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
writeFile();
}
});
button2.addActionListener(new ActionListener() {
@Override//重载
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
text1.setText("");
}
});
button3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}
});
}
public static void readFile() {
try (FileReader rf = new FileReader("D:\\eclipse-workspace\\编程练习9\\src\\com\\Gui\\myText.txt");
BufferedReader br = new BufferedReader(rf)
) {
String line;
while ((line = br.readLine()) != null) {
text1.append(line+"\n");
}
} catch (IOException e) {
e.printStackTrace();
}
}
/*
* 实现写入文件方法
*/
public void writeFile() {
try {
File wf = new File("D:\\eclipse-workspace\\编程练习9\\src\\com\\Gui\\myText.txt");
wf.createNewFile();
try (FileWriter writer = new FileWriter(wf);
BufferedWriter out = new BufferedWriter(writer)
) {
out.write(text1.getText()+"\r\n");
out.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
3.完整代码
一个简易的记事本程序
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class TestEdit extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
JButton button1=new JButton("保存");
JButton button2=new JButton("取消");
JButton button3=new JButton("退出");
static JTextArea text1=new JTextArea("");
public TestEdit() {
setLayout(null);
text1.setBounds(0,0,400,120);
button1.setBounds(95,130,60,25);
button2.setBounds(170,130,60,25);
button3.setBounds(245,130,60,25);
add(text1);
add(button1);
add(button2);
add(button3);
text1.getDocument().addDocumentListener(new DocumentListener(){
@Override
public void insertUpdate(DocumentEvent e) {
// TODO Auto-generated method stub
}
@Override
public void removeUpdate(DocumentEvent e) {
// TODO Auto-generated method stub
}
@Override
public void changedUpdate(DocumentEvent e) {
// TODO Auto-generated method stub
}
});
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
writeFile();
}
});
button2.addActionListener(new ActionListener() {
@Override//重载
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
text1.setText("");
}
});
button3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}
});
}
public static void readFile() {
try (FileReader rf = new FileReader("D://文本文件绝对保存路径");
BufferedReader br = new BufferedReader(rf)
) {
String line;
while ((line = br.readLine()) != null) {
text1.append(line+"\n");
}
} catch (IOException e) {
e.printStackTrace();
}
}
/*
* 实现写入文件方法
*/
public void writeFile() {
try {
File wf = new File("D://文本文件绝对保存路径");
wf.createNewFile();
try (FileWriter writer = new FileWriter(wf);
BufferedWriter out = new BufferedWriter(writer)
) {
out.write(text1.getText()+"\r\n");
out.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
TestEdit f=new TestEdit();
f.setTitle("文本编辑器");
f.setSize(400,200);
TestEdit.readFile();
f.setVisible(true);
}
}
4.效果
如图