add ctrl+s and ctrl+w

This commit is contained in:
Timi
2026-04-24 11:06:46 +08:00
parent 3941040362
commit 7d9967bbb5
2 changed files with 33 additions and 19 deletions

View File

@@ -5,8 +5,12 @@ import com.imyeyu.fx.ui.TimiFXUI;
import com.imyeyu.hosts.ui.ctrl.Main;
import com.imyeyu.inject.annotation.Inject;
import com.imyeyu.inject.annotation.TimiInjectApplication;
import javafx.application.Platform;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyCodeCombination;
import javafx.scene.input.KeyCombination;
import javafx.stage.Stage;
/**
@@ -22,13 +26,18 @@ public class FXApplication extends Application implements TimiFXUI {
private Main main;
@Override
public void start(Stage stage) {
FXTimiInject.run(FXApplication.class, this, stage);
public void start(Stage stage) {
FXTimiInject.run(FXApplication.class, this, stage);
Scene scene = new Scene(main, 900, 560);
scene.getStylesheets().addAll(CSS_STYLE, CSS_FONT, "style.css");
stage.setTitle("TimiHosts");
stage.setScene(scene);
stage.show();
Scene scene = new Scene(main, 900, 560);
scene.getStylesheets().addAll(CSS_STYLE, CSS_FONT, "style.css");
scene.getAccelerators().put(new KeyCodeCombination(KeyCode.S, KeyCombination.CONTROL_DOWN), main::saveHosts);
scene.getAccelerators().put(new KeyCodeCombination(KeyCode.W, KeyCombination.CONTROL_DOWN), () -> {
stage.close();
Platform.exit();
});
stage.setTitle("TimiHosts");
stage.setScene(scene);
stage.show();
}
}

View File

@@ -37,18 +37,7 @@ public class Main extends MainView {
private void init() {
add.setOnAction(e -> table.getItems().add(new Host()));
// 绑定保存按钮事件
save.setOnAction(e -> {
try {
int count = hostService.save();
labelTips.info("已保存 %d 条映射".formatted(count));
} catch (AccessDeniedException ex) {
log.error("写入 hosts 失败: 权限不足", ex);
labelTips.error("保存失败: 权限不足,请以管理员身份运行");
} catch (IOException ex) {
log.error("写入 hosts 失败", ex);
labelTips.error("保存失败: %s".formatted(ex.getMessage()));
}
});
save.setOnAction(e -> saveHosts());
// 加载初始数据
try {
int count = hostService.refresh();
@@ -65,6 +54,22 @@ public class Main extends MainView {
}
}
/**
* 保存当前 hosts 映射。
*/
public void saveHosts() {
try {
int count = hostService.save();
labelTips.info("已保存 %d 条映射".formatted(count));
} catch (AccessDeniedException ex) {
log.error("写入 hosts 失败: 权限不足", ex);
labelTips.error("保存失败: 权限不足,请以管理员身份运行");
} catch (IOException ex) {
log.error("写入 hosts 失败", ex);
labelTips.error("保存失败: %s".formatted(ex.getMessage()));
}
}
@PostConstruct
private void label() {
Callback updateStatus = () -> {