Java编写一个记事本小程序,实现录入记录的事件,用数据文件的方式保存每天的事情安排,实现按天查询并显示记事列表的功能,数据保存用文本文件实现
时间: 2023-09-13 08:05:53 浏览: 115
### 回答1:
下面是一个简单的 Java 程序,实现了记事本小程序的基本功能:
```
import java.io.*;
import java.util.Scanner;
public class Notebook {
public static void main(String[] args) throws IOException {
// 创建 Scanner 用于获取用户输入
Scanner scanner = new Scanner(System.in);
// 循环读取用户输入
while (true) {
// 打印菜单
System.out.println("1. 输入事件");
System.out.println("2. 查询事件");
System.out.println("3. 退出程序");
System.out.print("请输入选项:");
// 读取用户选择的选项
int option = scanner.nextInt();
// 根据用户选择的选项执行相应的操作
if (option == 1) {
// 输入事件
inputEvent(scanner);
} else if (option == 2) {
// 查询事件
queryEvent(scanner);
} else if (option == 3) {
// 退出程序
break;
} else {
// 输入无效,提示用户重新输入
System.out.println("输入无效,请重新输入。");
}
}
}
// 输入事件
public static void inputEvent(Scanner scanner) throws IOException {
// 读取用户输入的日期
System.out.print("请输入日期(格式:YYYY-MM-DD):");
String date = scanner.next();
// 读取用户输入的事件
System.out.print("请输入事件:");
String event = scanner.next();
// 将事件写入文件
File file = new File(date + ".txt");
if (!file.exists()) {
file.createNewFile();
}
BufferedWriter bw = new BufferedWriter(new FileWriter(file, true));
bw.write(event);
bw.newLine();
bw.close();
System.out
### 回答2:
Java编写记事本小程序可以使用Java的GUI库(例如Swing或JavaFX)来创建图形界面,并实现以下功能:
1. 创建一个主窗口,包含一个文本框用于输入事件记录和一个按钮用于保存记录。
2. 当用户在文本框中输入记录并点击保存按钮时,将记录保存到数据文件中。可以使用文件输入输出流来实现。
3. 创建一个查询窗口,包含一个日期选择器和一个按钮用于查询记录。
4. 当用户选择日期并点击查询按钮时,程序会从数据文件中读取相应日期的事件记录,并在新窗口中显示记事列表。可以使用文件输入流来读取数据,并在列表中显示。
5. 可以为主窗口和查询窗口添加菜单栏,包括文件(打开/保存)、编辑(复制/粘贴)、帮助等功能。
以下是一个简单的示例代码:
```
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class NotePadApp {
private JFrame mainFrame;
private JTextArea inputArea;
public NotePadApp() {
prepareGUI();
}
public static void main(String[] args) {
NotePadApp notePadApp = new NotePadApp();
notePadApp.showNotePad();
}
private void prepareGUI() {
mainFrame = new JFrame("记事本");
mainFrame.setSize(400, 300);
inputArea = new JTextArea();
JPanel inputPanel = new JPanel();
inputPanel.setLayout(new BorderLayout());
inputPanel.add(inputArea, BorderLayout.CENTER);
JButton saveButton = new JButton("保存");
saveButton.addActionListener(new SaveButtonListener());
inputPanel.add(saveButton, BorderLayout.SOUTH);
mainFrame.add(inputPanel);
mainFrame.setVisible(true);
}
private void showNotePad() {
JFrame queryFrame = new JFrame("查询");
queryFrame.setSize(400, 300);
JButton queryButton = new JButton("查询");
queryButton.addActionListener(new QueryButtonListener());
queryFrame.add(queryButton);
queryFrame.setVisible(true);
}
private class SaveButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String note = inputArea.getText();
LocalDate currentDate = LocalDate.now();
String fileName = currentDate.format(DateTimeFormatter.ISO_DATE) + ".txt";
try (BufferedWriter writer = new BufferedWriter(new FileWriter(fileName))) {
writer.write(note);
JOptionPane.showMessageDialog(mainFrame, "保存成功!");
} catch (IOException ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(mainFrame, "保存失败!");
}
}
}
private class QueryButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
LocalDate selectedDate = LocalDate.now(); // get selected date from date picker
String fileName = selectedDate.format(DateTimeFormatter.ISO_DATE) + ".txt";
StringBuilder noteList = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = reader.readLine()) != null) {
noteList.append(line).append("\n");
}
JOptionPane.showMessageDialog(mainFrame, noteList.toString());
} catch (IOException ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(mainFrame, "查询失败!");
}
}
}
}
```
注意,这只是一个简单的示例,可能需要根据实际需求进行修改和完善。另外,为了简化示例,没有实现日期选择器和菜单栏等部分,需要根据需要自行添加。
### 回答3:
这是一个简单的Java记事本小程序实现的基本思路:
1. 首先,需要创建一个Main类作为程序的入口。
2. 使用Scanner类从用户输入获取日期(以字符串形式),以及要记录的事情(以字符串形式)。
3. 创建一个Note类,用于表示每一条记事记录。Note类包含日期和事情两个属性,并提供相应的getter和setter方法。
4. 创建一个NoteList类,用于管理所有的记事记录。NoteList类需要有以下功能:
- 添加一条新的记事记录:将日期和事情作为参数传入NoteList类的方法,并创建一个新的Note对象存储在一个ArrayList中。
- 从文件中读取记事记录:将之前保存的文本文件读取,解析其中的日期和事情,创建相应的Note对象,并存储在ArrayList中。
- 将所有的记事记录保存到文件中:将ArrayList中的所有Note对象按照一定的格式保存到文本文件中。
5. 创建一个Menu类,用于显示菜单选项,并根据用户选择执行相应操作:
- 添加一条新的记事记录:调用NoteList类的添加方法。
- 查询并显示记事列表:根据用户输入的日期查询NoteList中相应日期的记事记录,并通过控制台打印出来。
6. 在Main类中创建菜单实例,并通过调用相应的方法来实现记事本的功能。
7. 最后,编译并运行程序,按照提示进行操作即可完成记事的录入和查询。
总结:通过上述步骤,我们可以实现一个简单的Java记事本小程序,能够实现记录事件、保存到文本文件以及按天查询和显示记事列表的功能。
阅读全文