📄 notebook.java
字号:
import javax.swing.*;
import javax.swing.tree.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.io.*;
//创建类并使之能响应按钮点击事件和树节点选择事件
class Remember extends JFrame implements ActionListener,TreeSelectionListener {
JTree tree = null;
JTextArea text = new JTextArea("", 20, 20);
JButton saveButton = new JButton("保存");
//创建树的根和叶
DefaultMutableTreeNode root;
DefaultMutableTreeNode leaf[] = new DefaultMutableTreeNode[4];
Remember() {
Container containter = getContentPane();
DefaultMutableTreeNode root = new DefaultMutableTreeNode("记事本");
//定义树的字节点
for(int i=1;i<4;i++) {
switch (i) {
case 1:
leaf[i] = new DefaultMutableTreeNode("家 庭");
break;
case 2:
leaf[i] = new DefaultMutableTreeNode("同 学");
break;
case 3:
leaf[i] = new DefaultMutableTreeNode("同 事");
break;
default:
break;
}
root.add(leaf[i]);
for(int j=1;j<=20;j++) {
leaf[i].add(new DefaultMutableTreeNode("第 "+j+" 条"));
}
}
tree = new JTree(root);
//界面布局
JPanel panelCenter = new JPanel();
panelCenter.setLayout(new BorderLayout());
JScrollPane scrollpane1 = new JScrollPane(text);
panelCenter.add(scrollpane1, BorderLayout.CENTER);
JPanel panelTop = new JPanel();
panelTop.add(saveButton);
panelCenter.add(panelTop, BorderLayout.SOUTH);
JScrollPane scrollpane2 = new JScrollPane(tree);
JSplitPane splitpane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, panelCenter, scrollpane2);
containter.add(splitpane);
//树对象呢构想应选择时间
tree.addTreeSelectionListener(this);
//保存按钮响应鼠标事件
saveButton.addActionListener(this);
//使窗口上的关闭按钮生效
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e0) {
System.exit(0);
}
});
setVisible(true);
setBounds(70,80,200,300);
}
public void valueChanged(TreeSelectionEvent e1) {
text.setText("");
if(e1.getSource()==tree) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
if(node.isLeaf()) {
String str=node.toString();
for(int i=0;i<4;i++){
if(node.getParent()==leaf[i]) {
try {
String temp=null;
//创建文件输入流
File file = new File(node.getParent().toString()+str+".txt");
FileReader filereader = new FileReader(file);
BufferedReader in = new BufferedReader(filereader);
//对是否读到文件尾进行判定
while((temp=in.readLine())!=null) {
text.append(temp+'\n');
}
filereader.close();
in.close();
} catch(Exception e) {}
}
}
}
}
}
public void actionPerformed(ActionEvent e5) {
if(e5.getSource()==saveButton) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
String str=node.toString();
if(node.isLeaf()) {
try {
//创建文件输出流
File file = new File(node.getParent().toString()+str+".txt");
FileWriter tofile = new FileWriter(file);
BufferedWriter out= new BufferedWriter(tofile);
//将文本区中的内容输出到文件中去
out.write(text.getText(),0,(text.getText()).length());
out.flush();
tofile.close();
out.close();
}catch(Exception e1) {}
}
}
}
}
public class NoteBook {
public static void main(String args[]){
Remember win = new Remember();
win.pack();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -