refactor: 重构了顶部工具栏的样式

This commit is contained in:
2025-11-25 14:00:43 +08:00
parent 1924d41d58
commit b97d712247
2 changed files with 48 additions and 67 deletions
@@ -16,26 +16,6 @@ import java.net.URL;
import java.util.ResourceBundle; import java.util.ResourceBundle;
public class Controller implements Initializable { public class Controller implements Initializable {
@FXML
private Button newSlideButton;
@FXML
private Button newPageButton;
@FXML
private Button deletePageButton;
@FXML
private Button addTextButton;
@FXML
private Button addLineButton;
@FXML
private Button addRectButton;
@FXML
private Button addCircleButton;
@FXML
private Button addEllipseButton;
@FXML
private Button addImageButton;
@FXML
private Button logout;
@FXML @FXML
private ListView<SlidePage> pageListView; private ListView<SlidePage> pageListView;
@FXML @FXML
@@ -46,14 +26,6 @@ public class Controller implements Initializable {
private VBox propertyPanelContainer; private VBox propertyPanelContainer;
@FXML @FXML
private AnchorPane scenePane; private AnchorPane scenePane;
@FXML
private Button openSlideButton; // 添加打开幻灯片按钮
@FXML
private Button saveSlideButton; // 添加保存幻灯片按钮
@FXML
private Button exportPageButton; // 添加导出页面按钮
@FXML
private Button exportSlideButton; // 添加导出幻灯片按钮
private Slide currentSlide; private Slide currentSlide;
private DrawingCanvas drawingCanvas; private DrawingCanvas drawingCanvas;
@@ -63,14 +35,6 @@ public class Controller implements Initializable {
@Override @Override
public void initialize(URL url, ResourceBundle resourceBundle) { public void initialize(URL url, ResourceBundle resourceBundle) {
pageListView.setDisable(true); pageListView.setDisable(true);
newPageButton.setDisable(true);
deletePageButton.setDisable(true);
addTextButton.setDisable(true);
addLineButton.setDisable(true);
addRectButton.setDisable(true);
addCircleButton.setDisable(true);
addEllipseButton.setDisable(true);
addImageButton.setDisable(true);
// 添加页面列表选择监听 // 添加页面列表选择监听
pageListView.getSelectionModel().selectedItemProperty().addListener((obs, oldVal, newVal) -> { pageListView.getSelectionModel().selectedItemProperty().addListener((obs, oldVal, newVal) -> {
@@ -100,7 +64,7 @@ public class Controller implements Initializable {
alert.setTitle("成功"); alert.setTitle("成功");
alert.setHeaderText("幻灯片已创建"); alert.setHeaderText("幻灯片已创建");
alert.setContentText("幻灯片 \"" + slideName + "\" 已创建。"); alert.setContentText("幻灯片 \"" + slideName + "\" 已创建。");
stage = (Stage) newSlideButton.getScene().getWindow(); stage = (Stage) scenePane.getScene().getWindow();
if (stage != null) { if (stage != null) {
stage.setTitle("Hyperpoint - " + slideName); stage.setTitle("Hyperpoint - " + slideName);
} }
@@ -118,14 +82,6 @@ public class Controller implements Initializable {
if (currentSlide != null) { if (currentSlide != null) {
pageListView.setItems(currentSlide.getPages()); pageListView.setItems(currentSlide.getPages());
pageListView.setDisable(false); pageListView.setDisable(false);
newPageButton.setDisable(false);
deletePageButton.setDisable(false);
addTextButton.setDisable(false);
addLineButton.setDisable(false);
addRectButton.setDisable(false);
addCircleButton.setDisable(false);
addEllipseButton.setDisable(false);
addImageButton.setDisable(false);
if (!currentSlide.getPages().isEmpty()) { if (!currentSlide.getPages().isEmpty()) {
pageListView.getSelectionModel().selectFirst(); pageListView.getSelectionModel().selectFirst();
@@ -329,7 +285,7 @@ public class Controller implements Initializable {
new FileChooser.ExtensionFilter("所有文件", "*.*") new FileChooser.ExtensionFilter("所有文件", "*.*")
); );
stage = (Stage) addImageButton.getScene().getWindow(); stage = (Stage) scenePane.getScene().getWindow();
File file = fileChooser.showOpenDialog(stage); File file = fileChooser.showOpenDialog(stage);
if (file != null) { if (file != null) {
@@ -349,7 +305,7 @@ public class Controller implements Initializable {
alert.setContentText("点击确定退出,点击取消返回。"); alert.setContentText("点击确定退出,点击取消返回。");
if (alert.showAndWait().orElse(null) == MyAlert.isOK()) { if (alert.showAndWait().orElse(null) == MyAlert.isOK()) {
stage = (Stage) logout.getScene().getWindow(); stage = (Stage) scenePane.getScene().getWindow();
stage.close(); stage.close();
} }
} }
@@ -366,7 +322,7 @@ public class Controller implements Initializable {
new FileChooser.ExtensionFilter("所有文件", "*.*") new FileChooser.ExtensionFilter("所有文件", "*.*")
); );
stage = (Stage) openSlideButton.getScene().getWindow(); stage = (Stage) scenePane.getScene().getWindow();
File file = fileChooser.showOpenDialog(stage); File file = fileChooser.showOpenDialog(stage);
if (file != null) { if (file != null) {
@@ -411,7 +367,7 @@ public class Controller implements Initializable {
); );
fileChooser.setInitialFileName(currentSlide.getName() + ".hyperpoint"); fileChooser.setInitialFileName(currentSlide.getName() + ".hyperpoint");
stage = (Stage) saveSlideButton.getScene().getWindow(); stage = (Stage) scenePane.getScene().getWindow();
File file = fileChooser.showSaveDialog(stage); File file = fileChooser.showSaveDialog(stage);
if (file != null) { if (file != null) {
@@ -457,7 +413,7 @@ public class Controller implements Initializable {
fileChooser.setInitialFileName(currentPage.getTitle() + ".png"); fileChooser.setInitialFileName(currentPage.getTitle() + ".png");
} }
stage = (Stage) exportPageButton.getScene().getWindow(); stage = (Stage) scenePane.getScene().getWindow();
File file = fileChooser.showSaveDialog(stage); File file = fileChooser.showSaveDialog(stage);
if (file != null) { if (file != null) {
@@ -495,7 +451,7 @@ public class Controller implements Initializable {
); );
fileChooser.setInitialFileName(currentSlide.getName() + ".pdf"); fileChooser.setInitialFileName(currentSlide.getName() + ".pdf");
stage = (Stage) exportSlideButton.getScene().getWindow(); stage = (Stage) scenePane.getScene().getWindow();
File file = fileChooser.showSaveDialog(stage); File file = fileChooser.showSaveDialog(stage);
if (file != null) { if (file != null) {
@@ -7,6 +7,8 @@
<?import javafx.scene.layout.HBox?> <?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?> <?import javafx.scene.layout.VBox?>
<?import javafx.scene.control.MenuButton?>
<?import javafx.scene.control.MenuItem?>
<AnchorPane fx:id="scenePane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="700.0" prefWidth="1300.0" xmlns="http://javafx.com/javafx/25" xmlns:fx="http://javafx.com/fxml/1" fx:controller="dev.bytevibe.hyperpoint.Controller"> <AnchorPane fx:id="scenePane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="700.0" prefWidth="1300.0" xmlns="http://javafx.com/javafx/25" xmlns:fx="http://javafx.com/fxml/1" fx:controller="dev.bytevibe.hyperpoint.Controller">
<children> <children>
<!-- 顶部菜单栏 --> <!-- 顶部菜单栏 -->
@@ -14,22 +16,45 @@
<children> <children>
<HBox spacing="5" style="-fx-padding: 5;"> <HBox spacing="5" style="-fx-padding: 5;">
<children> <children>
<Button fx:id="newSlideButton" mnemonicParsing="false" onAction="#onNewSlide" text="新建幻灯片" /> <!-- 文件菜单 -->
<Button fx:id="openSlideButton" mnemonicParsing="false" onAction="#onOpenSlideFile" text="打开幻灯片" /> <MenuButton mnemonicParsing="false" text="文件">
<Button fx:id="newPageButton" mnemonicParsing="false" onAction="#onNewPage" text="新建页面" /> <items>
<Button fx:id="deletePageButton" mnemonicParsing="false" onAction="#onDeletePage" text="删除页面" /> <MenuItem mnemonicParsing="false" onAction="#onNewSlide" text="新建幻灯片" />
<Button fx:id="saveSlideButton" mnemonicParsing="false" onAction="#onSaveSlide" text="保存幻灯片" /> <MenuItem mnemonicParsing="false" onAction="#onOpenSlideFile" text="打开幻灯片" />
<Button fx:id="exportPageButton" mnemonicParsing="false" onAction="#onExportPage" text="导出页面" /> <MenuItem mnemonicParsing="false" onAction="#onSaveSlide" text="保存幻灯片" />
<Button fx:id="exportSlideButton" mnemonicParsing="false" onAction="#onExportSlide" text="导出幻灯片" /> <MenuItem mnemonicParsing="false" onAction="#onExportSlide" text="导出幻灯片(PDF)" />
</items>
</MenuButton>
<!-- 页面菜单 -->
<MenuButton mnemonicParsing="false" text="页面">
<items>
<MenuItem mnemonicParsing="false" onAction="#onNewPage" text="新建页面" />
<MenuItem mnemonicParsing="false" onAction="#onDeletePage" text="删除页面" />
<MenuItem mnemonicParsing="false" onAction="#onExportPage" text="导出页面(图片)" />
</items>
</MenuButton>
<!-- 插入菜单 -->
<MenuButton mnemonicParsing="false" text="插入">
<items>
<MenuItem mnemonicParsing="false" onAction="#onAddText" text="文本框" />
<MenuItem mnemonicParsing="false" onAction="#onAddLine" text="直线" />
<MenuItem mnemonicParsing="false" onAction="#onAddRectangle" text="矩形" />
<MenuItem mnemonicParsing="false" onAction="#onAddCircle" text="圆形" />
<MenuItem mnemonicParsing="false" onAction="#onAddEllipse" text="椭圆" />
<MenuItem mnemonicParsing="false" onAction="#onAddImage" text="图片" />
</items>
</MenuButton>
<Label text=" | " /> <Label text=" | " />
<Button fx:id="addTextButton" mnemonicParsing="false" onAction="#onAddText" text="添加文本" />
<Button fx:id="addLineButton" mnemonicParsing="false" onAction="#onAddLine" text="直线" /> <!-- 退出菜单 -->
<Button fx:id="addRectButton" mnemonicParsing="false" onAction="#onAddRectangle" text="矩形" /> <MenuButton mnemonicParsing="false" text="更多">
<Button fx:id="addCircleButton" mnemonicParsing="false" onAction="#onAddCircle" text="圆形" /> <items>
<Button fx:id="addEllipseButton" mnemonicParsing="false" onAction="#onAddEllipse" text="椭圆" /> <MenuItem mnemonicParsing="false" onAction="#logout" text="退出应用" />
<Button fx:id="addImageButton" mnemonicParsing="false" onAction="#onAddImage" text="插入图片" /> </items>
<Label text=" | " /> </MenuButton>
<Button fx:id="logout" mnemonicParsing="false" onAction="#logout" text="退出" />
</children> </children>
</HBox> </HBox>
</children> </children>