本文实例为大家分享了Java实现记事本的具体代码,供大家参考,具体内容如下
编写一个具有菜单以及编辑、查找、替换、复制、粘贴功能,且具有新建、打开和保存文件功能的记事本(MyNotepad)。
package ch7;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Optional;
import javafx.scene.control.TextField;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonBar;
import javafx.scene.control.ButtonType;
import javafx.scene.control.Label;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.control.SeparatorMenuItem;
import javafx.scene.control.TextArea;
import javafx.scene.input.Clipboard;
import javafx.scene.input.ClipboardContent;
import javafx.scene.input.DataFormat;
import javafx.scene.input.KeyCombination;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.FileChooser;
import javafx.stage.FileChooser.ExtensionFilter;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
//编写一个具有菜单以及编辑、查找、替换、复制、粘贴功能,且具有新建、打开和保存文件功能的记事本(MyNotepad)。
public class MyNotePad extends Application {
public static TextArea textArea;//文本框的范围
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
// 文件选取器
final FileChooser fileChooser = new FileChooser();
fileChooser.getExtensionFilters().addAll(new ExtensionFilter("Text Files", "*.txt"),//加入格式
new ExtensionFilter("Java Sourse Files", "*.java"));
// 创建MenuBar
MenuBar menuBar = new MenuBar();//
menuBar.setStyle("-fx-background-color:lightgray");
/************************************
* 创建 Menu, 文件菜单条
************************************/
Menu menuFile = new Menu("文件(F)");
//1.新建
MenuItem menuNew = new MenuItem("新建");
menuNew.setAccelerator(KeyCombination.valueOf("Ctrl+N"));
menuNew.setOnAction((final ActionEvent e)->
{
Alert alert = new Alert(Alert.AlertType.CONFIRMATION); // 创建一个消息对话框,仅仅提供确定按钮
alert.setHeaderText("新建文件"); // 设置对话框的头部文本
// 设置对话框的内容文本
alert.setContentText("确定新建文件吗??");
//alert.show(); // 显示对话框
Optional buttonType = alert.showAndWait();
// 判断返回的按钮类型是确定还是取消,再据此分别进一步处理
if (buttonType.get().getButtonData().equals(ButtonBar.ButtonData.OK_DONE)) { // 单击了确定按钮OK_DONE
textArea.setText(" ");//清空文本框内
primaryStage.setTitle("新建文件");
}
});
//2.打开
MenuItem menuOpen = new MenuItem("