增加注释
This commit is contained in:
parent
704e928bb4
commit
929ae12fbf
@ -44,13 +44,6 @@ public interface ControllerInterface {
|
|||||||
*/
|
*/
|
||||||
EventHandler<ActionEvent> getOpenFileEventHandler();
|
EventHandler<ActionEvent> getOpenFileEventHandler();
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取保存文件处理事件处理程序
|
|
||||||
*
|
|
||||||
* @return 保存文件处理事件处理程序
|
|
||||||
*/
|
|
||||||
EventHandler<ActionEvent> getSaveFileEventHandler();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取另存为文件处理事件处理程序
|
* 获取另存为文件处理事件处理程序
|
||||||
*
|
*
|
||||||
@ -117,9 +110,4 @@ public interface ControllerInterface {
|
|||||||
*/
|
*/
|
||||||
void initTabPane();
|
void initTabPane();
|
||||||
|
|
||||||
/**
|
|
||||||
* 另存为文件
|
|
||||||
*/
|
|
||||||
void saveAsFile();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,10 +3,12 @@ package org.jcnc.jnotepad.controller.event.handler;
|
|||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.event.EventHandler;
|
import javafx.event.EventHandler;
|
||||||
import javafx.scene.control.TextArea;
|
import javafx.scene.control.TextArea;
|
||||||
/**
|
|
||||||
* LineFeed 类是一个事件处理程序,用于在文本区域中插入一个换行符。
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 换行程序。
|
||||||
|
* <p>
|
||||||
|
* 用于在文本区域中插入一个换行符。
|
||||||
|
*/
|
||||||
public class LineFeed implements EventHandler<ActionEvent> {
|
public class LineFeed implements EventHandler<ActionEvent> {
|
||||||
private final TextArea textArea;
|
private final TextArea textArea;
|
||||||
|
|
||||||
|
|||||||
@ -10,22 +10,38 @@ import org.jcnc.jnotepad.view.manager.ViewManager;
|
|||||||
import static org.jcnc.jnotepad.view.manager.ViewManager.tabPane;
|
import static org.jcnc.jnotepad.view.manager.ViewManager.tabPane;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*处理新建文件事件的事件处理程序。
|
* 新建文件事件的事件处理程序。
|
||||||
*当用户选择新建文件菜单或按钮时,将创建一个新的文本编辑区,并在Tab页中显示。
|
* <p>
|
||||||
* */
|
* 当用户选择新建文件时候,将创建一个新的文本编辑区,并在Tab页中显示。
|
||||||
|
*/
|
||||||
|
|
||||||
public class NewFile implements EventHandler<ActionEvent> {
|
public class NewFile implements EventHandler<ActionEvent> {
|
||||||
|
/**
|
||||||
|
* 处理新建文件事件。
|
||||||
|
*
|
||||||
|
* @param event 事件对象
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void handle(ActionEvent event) {
|
public void handle(ActionEvent event) {
|
||||||
|
// 获取控制器
|
||||||
Controller controller = new Controller();
|
Controller controller = new Controller();
|
||||||
TextArea textArea = new TextArea(); // 创建新的文本编辑区
|
|
||||||
Tab tab = new Tab("新建文本 " + ++ViewManager.tabIndex); // 创建新的Tab页
|
// 创建一个新的文本编辑区
|
||||||
|
TextArea textArea = new TextArea();
|
||||||
|
|
||||||
|
// 创建一个新的Tab页
|
||||||
|
Tab tab = new Tab("新建文本 " + ++ViewManager.tabIndex);
|
||||||
tab.setContent(textArea);
|
tab.setContent(textArea);
|
||||||
|
|
||||||
|
// 将Tab页添加到TabPane中
|
||||||
tabPane.getTabs().add(tab);
|
tabPane.getTabs().add(tab);
|
||||||
|
|
||||||
|
// 将新建的Tab页设置为选中状态
|
||||||
tabPane.getSelectionModel().select(tab);
|
tabPane.getSelectionModel().select(tab);
|
||||||
|
|
||||||
|
// 更新状态标签
|
||||||
controller.updateStatusLabel(textArea);
|
controller.updateStatusLabel(textArea);
|
||||||
|
|
||||||
// 更新编码信息
|
// 更新编码信息
|
||||||
controller.upDateEncodingLabel(textArea.getText()); // 更新文本编码信息
|
controller.upDateEncodingLabel(textArea.getText());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -12,11 +12,13 @@ import java.io.File;
|
|||||||
import static org.jcnc.jnotepad.view.manager.ViewManager.tabPane;
|
import static org.jcnc.jnotepad.view.manager.ViewManager.tabPane;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 打开文件事件处理器.
|
* 打开文件的事件处理程序。
|
||||||
|
* <p>
|
||||||
|
* 当用户选择打开文件时,将创建一个新的文本编辑区,并在Tab页中显示。
|
||||||
*/
|
*/
|
||||||
public class OpenFile implements EventHandler<ActionEvent> {
|
public class OpenFile implements EventHandler<ActionEvent> {
|
||||||
/**
|
/**
|
||||||
* 处理打开文件事件.
|
* 处理打开文件事件。
|
||||||
*
|
*
|
||||||
* @param event 事件对象
|
* @param event 事件对象
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -14,7 +14,20 @@ import java.io.IOException;
|
|||||||
|
|
||||||
import static org.jcnc.jnotepad.view.manager.ViewManager.tabPane;
|
import static org.jcnc.jnotepad.view.manager.ViewManager.tabPane;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存文件事件处理器。
|
||||||
|
* <p>
|
||||||
|
* 当用户选择保存文件时,当用户选择另存为文件菜单或按钮时,
|
||||||
|
* 会弹出一个保存文件对话框,用户选择保存位置和文件名后,
|
||||||
|
* 将当前文本编辑区的内容保存到指定文件中,
|
||||||
|
* 并更新Tab页上的文件名和UserData。
|
||||||
|
*/
|
||||||
public class SaveAsFile implements EventHandler<ActionEvent> {
|
public class SaveAsFile implements EventHandler<ActionEvent> {
|
||||||
|
/**
|
||||||
|
* 处理保存文件事件。
|
||||||
|
*
|
||||||
|
* @param event 事件对象
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void handle(ActionEvent event) {
|
public void handle(ActionEvent event) {
|
||||||
Controller controller = new Controller();
|
Controller controller = new Controller();
|
||||||
|
|||||||
@ -1,37 +0,0 @@
|
|||||||
package org.jcnc.jnotepad.controller.event.handler;
|
|
||||||
|
|
||||||
import javafx.event.ActionEvent;
|
|
||||||
import javafx.event.EventHandler;
|
|
||||||
import javafx.scene.control.Tab;
|
|
||||||
import javafx.scene.control.TextArea;
|
|
||||||
import org.jcnc.jnotepad.controller.manager.Controller;
|
|
||||||
|
|
||||||
import java.io.*;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
|
||||||
|
|
||||||
import static org.jcnc.jnotepad.view.manager.ViewManager.tabPane;
|
|
||||||
|
|
||||||
// 保存文件事件处理器
|
|
||||||
public class SaveFile implements EventHandler<ActionEvent> {
|
|
||||||
@Override
|
|
||||||
public void handle(ActionEvent event) {
|
|
||||||
Controller controller = new Controller();
|
|
||||||
Tab selectedTab = tabPane.getSelectionModel().getSelectedItem();
|
|
||||||
if (selectedTab != null) {
|
|
||||||
File file = (File) selectedTab.getUserData();
|
|
||||||
if (file == null) {
|
|
||||||
controller.saveAsFile();
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8));
|
|
||||||
TextArea textArea = (TextArea) selectedTab.getContent();
|
|
||||||
String text = textArea.getText();
|
|
||||||
writer.write(text);
|
|
||||||
writer.flush();
|
|
||||||
writer.close();
|
|
||||||
} catch (IOException ignored) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -64,30 +64,11 @@ public class Controller implements ControllerInterface {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public EventHandler<ActionEvent> getSaveFileEventHandler() {
|
|
||||||
return new SaveFile();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EventHandler<ActionEvent> getSaveAsFileEventHandler() {
|
public EventHandler<ActionEvent> getSaveAsFileEventHandler() {
|
||||||
return new SaveAsFile();
|
return new SaveAsFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void saveAsFile() {
|
|
||||||
Tab selectedTab = tabPane.getSelectionModel().getSelectedItem();
|
|
||||||
if (selectedTab != null) {
|
|
||||||
FileChooser fileChooser = new FileChooser();
|
|
||||||
fileChooser.setInitialFileName("新建文本");
|
|
||||||
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("文本文档", "*.txt"));
|
|
||||||
File file = fileChooser.showSaveDialog(null);
|
|
||||||
if (file != null) {
|
|
||||||
saveFile();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateStatusLabel(TextArea textArea) {
|
public void updateStatusLabel(TextArea textArea) {
|
||||||
int caretPosition = textArea.getCaretPosition();
|
int caretPosition = textArea.getCaretPosition();
|
||||||
@ -217,7 +198,4 @@ public class Controller implements ControllerInterface {
|
|||||||
thread.start();
|
thread.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveFile() {
|
|
||||||
new SaveFile();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,6 @@ import java.nio.charset.StandardCharsets;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 编码检测工具类
|
* 编码检测工具类
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public class EncodingDetector {
|
public class EncodingDetector {
|
||||||
|
|
||||||
|
|||||||
@ -12,7 +12,6 @@ public class View {
|
|||||||
// 初始化菜单项的事件处理器
|
// 初始化菜单项的事件处理器
|
||||||
newItem.setOnAction(new Controller().getNewFileEventHandler(new TextArea()));
|
newItem.setOnAction(new Controller().getNewFileEventHandler(new TextArea()));
|
||||||
openItem.setOnAction(new Controller().getOpenFileEventHandler());
|
openItem.setOnAction(new Controller().getOpenFileEventHandler());
|
||||||
saveItem.setOnAction(new Controller().getSaveFileEventHandler());
|
|
||||||
saveAsItem.setOnAction(new Controller().getSaveAsFileEventHandler());
|
saveAsItem.setOnAction(new Controller().getSaveAsFileEventHandler());
|
||||||
lineFeedItem.setOnAction(new Controller().getLineFeedEventHandler(new TextArea()));
|
lineFeedItem.setOnAction(new Controller().getLineFeedEventHandler(new TextArea()));
|
||||||
|
|
||||||
|
|||||||
@ -20,7 +20,7 @@ public class ViewManager {
|
|||||||
// 菜单栏组件
|
// 菜单栏组件
|
||||||
public static MenuBar menuBar; //菜单栏
|
public static MenuBar menuBar; //菜单栏
|
||||||
public static Menu fileMenu, setMenu; //文件菜单
|
public static Menu fileMenu, setMenu; //文件菜单
|
||||||
public static MenuItem newItem, openItem, saveItem, saveAsItem; //新建/打开/保存/保存至 菜单
|
public static MenuItem newItem, openItem, saveAsItem; //新建/打开/保存/保存至 菜单
|
||||||
|
|
||||||
public static CheckMenuItem lineFeedItem;
|
public static CheckMenuItem lineFeedItem;
|
||||||
// 主界面布局
|
// 主界面布局
|
||||||
@ -69,11 +69,10 @@ public class ViewManager {
|
|||||||
setMenu = new Menu("设置");
|
setMenu = new Menu("设置");
|
||||||
newItem = new MenuItem("新建");
|
newItem = new MenuItem("新建");
|
||||||
openItem = new MenuItem("打开");
|
openItem = new MenuItem("打开");
|
||||||
saveItem = new MenuItem("保存");
|
|
||||||
saveAsItem = new MenuItem("另存为");
|
saveAsItem = new MenuItem("另存为");
|
||||||
lineFeedItem = new CheckMenuItem("自动换行");
|
lineFeedItem = new CheckMenuItem("自动换行");
|
||||||
lineFeedItem.selectedProperty().set(true);
|
lineFeedItem.selectedProperty().set(true);
|
||||||
fileMenu.getItems().addAll(newItem, openItem, saveItem, saveAsItem);
|
fileMenu.getItems().addAll(newItem, openItem, saveAsItem);
|
||||||
setMenu.getItems().add(lineFeedItem);
|
setMenu.getItems().add(lineFeedItem);
|
||||||
|
|
||||||
menuBar.getMenus().addAll(fileMenu, setMenu);
|
menuBar.getMenus().addAll(fileMenu, setMenu);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user