java记事本程序代码
时间: 2023-11-18 20:55:01 浏览: 56
这个Java记事本程序的源码可以通过引用中提供的链接进行下载。该程序主要实现了新建、打开、保存和关闭四个简单的功能,同时也展示了如何使用Java创建界面、安装各种监听器、创建窗口的主菜单、创建JMenuItem并添加到对应的JMenu等操作。如果想要运行该程序,可以在main方法中调用new Notepad()方法。总体来说,这个简单的记事本程序带码具有一定的参考价值,可以帮助新手学习和使用窗口、菜单、IO流等相关知识。
相关问题
java实训记事本程序代码
根据提供的引用内容,我可以为您提供一个简单的Java记事本程序代码,代码如下:
```
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class JavaNotepad extends Frame implements ActionListener {
TextArea textArea;
MenuBar menuBar;
Menu fileMenu, editMenu;
MenuItem newMenuItem, openMenuItem, saveMenuItem, saveAsMenuItem, exitMenuItem, cutMenuItem, copyMenuItem, pasteMenuItem, findMenuItem, replaceMenuItem;
public JavaNotepad() {
setTitle("Java Notepad");
setSize(500, 500);
setLocationRelativeTo(null);
textArea = new TextArea();
add(textArea);
menuBar = new MenuBar();
fileMenu = new Menu("File");
editMenu = new Menu("Edit");
newMenuItem = new MenuItem("New");
openMenuItem = new MenuItem("Open");
saveMenuItem = new MenuItem("Save");
saveAsMenuItem = new MenuItem("Save As");
exitMenuItem = new MenuItem("Exit");
cutMenuItem = new MenuItem("Cut");
copyMenuItem = new MenuItem("Copy");
pasteMenuItem = new MenuItem("Paste");
findMenuItem = new MenuItem("Find");
replaceMenuItem = new MenuItem("Replace");
newMenuItem.addActionListener(this);
openMenuItem.addActionListener(this);
saveMenuItem.addActionListener(this);
saveAsMenuItem.addActionListener(this);
exitMenuItem.addActionListener(this);
cutMenuItem.addActionListener(this);
copyMenuItem.addActionListener(this);
pasteMenuItem.addActionListener(this);
findMenuItem.addActionListener(this);
replaceMenuItem.addActionListener(this);
fileMenu.add(newMenuItem);
fileMenu.add(openMenuItem);
fileMenu.add(saveMenuItem);
fileMenu.add(saveAsMenuItem);
fileMenu.addSeparator();
fileMenu.add(exitMenuItem);
editMenu.add(cutMenuItem);
editMenu.add(copyMenuItem);
editMenu.add(pasteMenuItem);
editMenu.addSeparator();
editMenu.add(findMenuItem);
editMenu.add(replaceMenuItem);
menuBar.add(fileMenu);
menuBar.add(editMenu);
setMenuBar(menuBar);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
}
}); }
public void actionPerformed(ActionEvent e) {
if (e.getSource() == newMenuItem) {
textArea.setText("");
} else if (e.getSource() == openMenuItem) {
FileDialog fileDialog = new FileDialog(this, "Open File", FileDialog.LOAD);
fileDialog.setVisible(true);
if (fileDialog.getFile() != null) {
String fileName = fileDialog.getDirectory() + fileDialog.getFile();
setTitle(fileName);
readFile(fileName);
}
} else if (e.getSource() == saveMenuItem) {
String fileName = getTitle();
if (fileName.equals("Java Notepad")) {
FileDialog fileDialog = new FileDialog(this, "Save File", FileDialog.SAVE);
fileDialog.setVisible(true);
if (fileDialog.getFile() != null) {
fileName = fileDialog.getDirectory() + fileDialog.getFile();
setTitle(fileName);
writeFile(fileName);
}
} else {
writeFile(fileName);
}
} else if (e.getSource() == saveAsMenuItem) {
FileDialog fileDialog = new FileDialog(this, "Save File As", FileDialog.SAVE);
fileDialog.setVisible(true);
if (fileDialog.getFile() != null) {
String fileName = fileDialog.getDirectory() + fileDialog.getFile();
setTitle(fileName);
writeFile(fileName);
}
} else if (e.getSource() == exitMenuItem) {
dispose();
} else if (e.getSource() == cutMenuItem) {
textArea.cut();
} else if (e.getSource() == copyMenuItem) {
textArea.copy();
} else if (e.getSource() == pasteMenuItem) {
textArea.paste();
} else if (e.getSource() == findMenuItem) {
String findString = JOptionPane.showInputDialog(this, "Find:");
String text = textArea.getText();
int index = text.indexOf(findString);
if (index != -1) {
textArea.select(index, index + findString.length());
}
} else if (e.getSource() == replaceMenuItem) {
String findString = JOptionPane.showInputDialog(this, "Find:");
String replaceString = JOptionPane.showInputDialog(this, "Replace:");
String text = textArea.getText();
int index = text.indexOf(findString);
if (index != -1) {
textArea.replaceRange(replaceString, index, index + findString.length());
}
}
}
private void readFile(String fileName) {
try {
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line = null;
while ((line = reader.readLine()) != null) {
textArea.append(line + "\n");
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private void writeFile(String fileName) {
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
writer.write(textArea.getText());
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
JavaNotepad javaNotepad = new JavaNotepad();
javaNotepad.setVisible(true);
}
}
```
这个记事本程序可以实现编辑、保存、另存为、查找和替换等功能。您可以根据需要进行修改和扩展。
--相关问题--:
1. Java中如何实现文件的读写操作?
2. 如何在Java中实现GUI编程?
3.
使用java编写的记事本程序代码
以下是一个简单的Java Swing记事本程序的代码,你可以参考它来编写你自己的程序:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class SimpleNotepad extends JFrame implements ActionListener {
private JTextArea textArea;
private JScrollPane scrollPane;
private JMenuBar menuBar;
private JMenu fileMenu, editMenu;
private JMenuItem newFileItem, openFileItem, saveFileItem, saveAsFileItem, exitFileItem;
private JMenuItem undoItem, redoItem, cutItem, copyItem, pasteItem, selectAllItem;
private File currentFile;
public SimpleNotepad() {
super("Simple Notepad");
textArea = new JTextArea(20, 60);
textArea.setFont(new Font("Consolas", Font.PLAIN, 14));
scrollPane = new JScrollPane(textArea);
menuBar = new JMenuBar();
fileMenu = new JMenu("File");
newFileItem = new JMenuItem("New");
openFileItem = new JMenuItem("Open");
saveFileItem = new JMenuItem("Save");
saveAsFileItem = new JMenuItem("Save As");
exitFileItem = new JMenuItem("Exit");
editMenu = new JMenu("Edit");
undoItem = new JMenuItem("Undo");
redoItem = new JMenuItem("Redo");
cutItem = new JMenuItem("Cut");
copyItem = new JMenuItem("Copy");
pasteItem = new JMenuItem("Paste");
selectAllItem = new JMenuItem("Select All");
newFileItem.addActionListener(this);
openFileItem.addActionListener(this);
saveFileItem.addActionListener(this);
saveAsFileItem.addActionListener(this);
exitFileItem.addActionListener(this);
undoItem.addActionListener(this);
redoItem.addActionListener(this);
cutItem.addActionListener(this);
copyItem.addActionListener(this);
pasteItem.addActionListener(this);
selectAllItem.addActionListener(this);
fileMenu.add(newFileItem);
fileMenu.add(openFileItem);
fileMenu.add(saveFileItem);
fileMenu.add(saveAsFileItem);
fileMenu.addSeparator();
fileMenu.add(exitFileItem);
editMenu.add(undoItem);
editMenu.add(redoItem);
editMenu.addSeparator();
editMenu.add(cutItem);
editMenu.add(copyItem);
editMenu.add(pasteItem);
editMenu.addSeparator();
editMenu.add(selectAllItem);
menuBar.add(fileMenu);
menuBar.add(editMenu);
setJMenuBar(menuBar);
add(scrollPane);
setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new SimpleNotepad();
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == newFileItem) {
newFile();
} else if (e.getSource() == openFileItem) {
openFile();
} else if (e.getSource() == saveFileItem) {
saveFile();
} else if (e.getSource() == saveAsFileItem) {
saveAsFile();
} else if (e.getSource() == exitFileItem) {
exit();
} else if (e.getSource() == undoItem) {
textArea.undo();
} else if (e.getSource() == redoItem) {
textArea.redo();
} else if (e.getSource() == cutItem) {
textArea.cut();
} else if (e.getSource() == copyItem) {
textArea.copy();
} else if (e.getSource() == pasteItem) {
textArea.paste();
} else if (e.getSource() == selectAllItem) {
textArea.selectAll();
}
}
private void newFile() {
textArea.setText("");
currentFile = null;
}
private void openFile() {
JFileChooser fileChooser = new JFileChooser(".");
int result = fileChooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try {
FileReader reader = new FileReader(file);
textArea.read(reader, null);
reader.close();
currentFile = file;
} catch (IOException e) {
e.printStackTrace();
}
}
}
private void saveFile() {
if (currentFile != null) {
try {
FileWriter writer = new FileWriter(currentFile);
textArea.write(writer);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
} else {
saveAsFile();
}
}
private void saveAsFile() {
JFileChooser fileChooser = new JFileChooser(".");
int result = fileChooser.showSaveDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
try {
FileWriter writer = new FileWriter(file);
textArea.write(writer);
writer.close();
currentFile = file;
} catch (IOException e) {
e.printStackTrace();
}
}
}
private void exit() {
System.exit(0);
}
}
```
这个程序的功能包括新建、打开、保存、另存为、撤销、重做、剪切、复制、粘贴、选择全部等功能。注意,这只是一个简单的示例程序,你可以根据实际需求进行修改和扩展。