Eterlaze 10 months ago
commit 9e0e656e47

@ -0,0 +1,29 @@
### IntelliJ IDEA ###
out/
!**/src/main/**/out/
!**/src/test/**/out/
### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
### VS Code ###
.vscode/
### Mac OS ###
.DS_Store

@ -0,0 +1,8 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

@ -0,0 +1 @@
Calculater.java

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Calculater.iml" filepath="$PROJECT_DIR$/Calculater.iml" />
</modules>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -0,0 +1,153 @@
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class Calculater extends Application {
private Label display;
private double firstNumber = 0;
private String operator = "";
private boolean startNewNumber = true;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
// Create display label
display = new Label("0.0");
display.setStyle("-fx-font-size: 30px;");
display.setMinWidth(200); // Adjust width for display
display.setAlignment(Pos.CENTER_RIGHT); // Align text to the right
// Set up the buttons
GridPane gridPane = createButtonGrid();
// Create the layout
VBox layout = new VBox(10);
layout.setPadding(new Insets(10));
layout.setAlignment(Pos.CENTER);
layout.getChildren().addAll(display, gridPane);
// Set up the scene and stage
Scene scene = new Scene(layout, 300, 400);
primaryStage.setTitle("Calculator");
primaryStage.setScene(scene);
primaryStage.show();
}
private GridPane createButtonGrid() {
GridPane grid = new GridPane();
grid.setHgap(10);
grid.setVgap(10);
grid.setAlignment(Pos.CENTER);
// Create buttons with a similar layout to your screenshot
String[][] buttonText = {
{"AC", "±", "%", "÷"},
{"7", "8", "9", "×"},
{"4", "5", "6", "-"},
{"1", "2", "3", "+"},
{"0", ".", "=", ""}
};
// Set button size
int buttonSize = 50;
// Add buttons to the grid
int row = 0;
for (int i = 0; i < buttonText.length; i++) {
for (int j = 0; j < buttonText[i].length; j++) {
if (!buttonText[i][j].isEmpty()) {
Button button = createButton(buttonText[i][j], buttonSize);
if (buttonText[i][j].equals("0")) {
grid.add(button, j, row, 2, 1); // Make '0' span two columns
} else {
grid.add(button, j, row);
}
}
}
row++;
}
return grid;
}
private Button createButton(String text, int size) {
Button button = new Button(text);
button.setMinSize(size, size);
button.setStyle("-fx-font-size: 18px; -fx-background-color: white; -fx-border-color: lightgray;");
button.setOnAction(e -> handleButtonPress(text));
return button;
}
private void handleButtonPress(String text) {
if (text.matches("\\d") || text.equals(".")) {
handleNumberInput(text);
} else if (text.equals("AC")) {
handleClear();
} else if (text.equals("=")) {
handleEquals();
} else {
handleOperator(text);
}
}
private void handleNumberInput(String text) {
if (startNewNumber) {
display.setText(text);
startNewNumber = false;
} else {
display.setText(display.getText() + text);
}
}
private void handleClear() {
display.setText("0");
firstNumber = 0;
operator = "";
startNewNumber = true;
}
private void handleOperator(String text) {
firstNumber = Double.parseDouble(display.getText());
operator = text;
startNewNumber = true;
}
private void handleEquals() {
double secondNumber = Double.parseDouble(display.getText());
double result = 0;
switch (operator) {
case "+":
result = firstNumber + secondNumber;
break;
case "-":
result = firstNumber - secondNumber;
break;
case "×":
result = firstNumber * secondNumber;
break;
case "÷":
if (secondNumber != 0) {
result = firstNumber / secondNumber;
} else {
display.setText("Error");
return;
}
break;
case "%":
result = firstNumber % secondNumber;
break;
}
display.setText(String.valueOf(result));
startNewNumber = true;
}
}

@ -0,0 +1,17 @@
// 按两次 Shift 打开“随处搜索”对话框并输入 `show whitespaces`
// 然后按 Enter 键。现在,您可以在代码中看到空格字符。
public class Main {
public static void main(String[] args) {
// 当文本光标位于高亮显示的文本处时按 Alt+Enter
// 可查看 IntelliJ IDEA 对于如何修正该问题的建议。
System.out.printf("Hello and welcome!");
// 按 Shift+F10 或点击装订区域中的绿色箭头按钮以运行脚本。
for (int i = 1; i <= 5; i++) {
// 按 Shift+F9 开始调试代码。我们已为您设置了一个断点,
// 但您始终可以通过按 Ctrl+F8 添加更多断点。
System.out.println("i = " + i);
}
}
}
Loading…
Cancel
Save