修复uibug
This commit is contained in:
parent
edb9bab320
commit
f773ccb67c
1
.gitignore
vendored
1
.gitignore
vendored
@ -55,3 +55,4 @@ logs/
|
||||
/jnotepadConfig.json
|
||||
/qodana.yaml
|
||||
.mvn/
|
||||
/main.c
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package org.jcnc.jnotepad.views.root.left.sidebar.tools;
|
||||
|
||||
import javafx.geometry.Insets;
|
||||
import javafx.geometry.Orientation;
|
||||
import javafx.scene.control.Button;
|
||||
|
||||
@ -37,6 +38,7 @@ public class SidebarToolBar extends javafx.scene.control.ToolBar {
|
||||
private SidebarToolBar() {
|
||||
// 垂直排列
|
||||
this.setOrientation(Orientation.VERTICAL);
|
||||
this.setPadding(new Insets(1,5,0,0));
|
||||
this.setOnMouseClicked(event -> {
|
||||
// SidebarToolBar 点击事件
|
||||
});
|
||||
|
||||
@ -1,39 +0,0 @@
|
||||
package org.jcnc.jnotepad.views.root.left.sidebar.tools;
|
||||
|
||||
import javafx.scene.layout.HBox;
|
||||
import javafx.scene.layout.Priority;
|
||||
import org.jcnc.jnotepad.component.module.base.AbstractHorizontalBox;
|
||||
|
||||
/**
|
||||
* ToolHBox 是 JNotepad 应用程序的工具栏水平布局类。
|
||||
*
|
||||
* <p>该类继承自 JavaFX 的 HBox 类,用于将工具栏放置在水平布局中。</p>
|
||||
*
|
||||
* <p>工具栏水平布局中包含一个 JNotepadToolBar 的单例实例,并设置其子节点水平拉伸属性,以确保工具栏在水平方向上充分占用空间。</p>
|
||||
*
|
||||
* @author luke
|
||||
*/
|
||||
public class ToolHorizontalBox extends AbstractHorizontalBox {
|
||||
/**
|
||||
* 单例模式,保证只有一个 ToolHBox 实例
|
||||
*/
|
||||
private static final ToolHorizontalBox INSTANCE = new ToolHorizontalBox();
|
||||
|
||||
private ToolHorizontalBox() {
|
||||
// 设置子节点水平拉伸
|
||||
HBox.setHgrow(SidebarToolBar.getInstance(), Priority.ALWAYS);
|
||||
|
||||
// 将 JNotepadToolBar 添加为子节点
|
||||
getChildren().add(SidebarToolBar.getInstance());
|
||||
getStyleClass().add("tool-horizontal-box");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取 ToolHBox 的单例实例。
|
||||
*
|
||||
* @return ToolHBox 的单例实例
|
||||
*/
|
||||
public static ToolHorizontalBox getInstance() {
|
||||
return INSTANCE;
|
||||
}
|
||||
}
|
||||
@ -24,7 +24,6 @@ import static org.jcnc.jnotepad.common.constants.TextConstants.RUN;
|
||||
* @author gewuyou
|
||||
*/
|
||||
public class RunTopMenu extends AbstractTopMenu {
|
||||
CenterTab centerTab = CenterTabPaneManager.getInstance().getSelected();
|
||||
private static final BuildPanelManager BUILD_PANEL_MANAGER = BuildPanelManager.getInstance();
|
||||
private static final BuildPanel BUILD_PANEL = BuildPanel.getInstance();
|
||||
private static final RunTopMenu INSTANCE = new RunTopMenu();
|
||||
@ -64,22 +63,17 @@ public class RunTopMenu extends AbstractTopMenu {
|
||||
return runMenuItems;
|
||||
}
|
||||
|
||||
EventHandler<ActionEvent> codeRun = event -> {
|
||||
// 创建一个TextArea用于输出编译后的结果
|
||||
// TextArea resultTextArea = new TextArea();
|
||||
// resultTextArea.setPrefRowCount(10);
|
||||
// resultTextArea.setPrefColumnCount(40);
|
||||
// resultTextArea.setEditable(false); // 禁止编辑
|
||||
EventHandler<ActionEvent> codeRun = event -> {
|
||||
|
||||
// 获取TextCodeArea的文本内容
|
||||
|
||||
CenterTab centerTab = CenterTabPaneManager.getInstance().getSelected();
|
||||
|
||||
String code = centerTab.getLineNumberTextArea().getText();
|
||||
|
||||
// TextCodeArea的当前文本内容
|
||||
System.out.println("TextCodeArea的当前文本内容:" + code);
|
||||
|
||||
String fileName = "temp.c";
|
||||
String fileName = centerTab.getText();
|
||||
|
||||
// 将C代码写入临时文件
|
||||
try (PrintWriter writer = new PrintWriter(new FileWriter(fileName))) {
|
||||
@ -88,9 +82,8 @@ public class RunTopMenu extends AbstractTopMenu {
|
||||
LogUtil.getLogger(this.getClass()).info("正在写入:{}", code);
|
||||
}
|
||||
|
||||
// 编译和运行C代码
|
||||
// compileAndRunCode(fileName, resultTextArea);
|
||||
compileAndRunCode(fileName);
|
||||
// 编译C代码
|
||||
compileAndRunCode(fileName);
|
||||
};
|
||||
|
||||
/**
|
||||
@ -98,8 +91,9 @@ public class RunTopMenu extends AbstractTopMenu {
|
||||
*/
|
||||
private void compileAndRunCode(String fileName) {
|
||||
try {
|
||||
CenterTab centerTab = CenterTabPaneManager.getInstance().getSelected();
|
||||
// 创建ProcessBuilder并指定GCC编译命令
|
||||
ProcessBuilder processBuilder = new ProcessBuilder("gcc", fileName, "-o", "temp");
|
||||
ProcessBuilder processBuilder = new ProcessBuilder("gcc", fileName, "-o", centerTab.getText());
|
||||
|
||||
// 设置工作目录
|
||||
processBuilder.directory(null);
|
||||
@ -120,7 +114,7 @@ public class RunTopMenu extends AbstractTopMenu {
|
||||
System.out.println("编译成功!");
|
||||
|
||||
// 运行编译后的可执行文件
|
||||
Process runProcess = new ProcessBuilder("./temp").start();
|
||||
Process runProcess = new ProcessBuilder("./" + centerTab.getText()).start();
|
||||
|
||||
// 读取运行结果
|
||||
BufferedReader runReader = new BufferedReader(new InputStreamReader(runProcess.getInputStream()));
|
||||
@ -130,7 +124,7 @@ public class RunTopMenu extends AbstractTopMenu {
|
||||
}
|
||||
// 显示运行结果
|
||||
BUILD_PANEL_MANAGER.controlShow(true);
|
||||
BUILD_PANEL_MANAGER.setText(BUILD_PANEL.getRunBox(),result.toString());
|
||||
BUILD_PANEL_MANAGER.setText(BUILD_PANEL.getRunBox(), result.toString());
|
||||
} else {
|
||||
System.out.println("编译失败,返回代码:" + compileExitCode);
|
||||
}
|
||||
@ -152,7 +146,7 @@ public class RunTopMenu extends AbstractTopMenu {
|
||||
// 调试 test
|
||||
registerMenuItem(topMenuBar.getDeBugItem(), DE_BUG, "deBugItem", event -> {
|
||||
BUILD_PANEL_MANAGER.controlShow(true);
|
||||
BUILD_PANEL_MANAGER.setText(BUILD_PANEL.getBuildBox(),"待开发");
|
||||
BUILD_PANEL_MANAGER.setText(BUILD_PANEL.getBuildBox(), "待开发");
|
||||
});
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user