⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 notebook.java

📁 java应用举例2
💻 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 + -