Compare commits
No commits in common. '778e2697869810e7924967774903c75a5f7d3a17' and 'db45902e2592be2f230012461ce193e6c9946de5' have entirely different histories.
778e269786
...
db45902e25
@ -1,3 +0,0 @@
|
||||
# 默认忽略的文件
|
||||
/shelf/
|
||||
/workspace.xml
|
@ -1,11 +0,0 @@
|
||||
<?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$" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
@ -1,6 +0,0 @@
|
||||
<?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 (2)" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/Calculator.iml" filepath="$PROJECT_DIR$/.idea/Calculator.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
@ -1,20 +1,97 @@
|
||||
import javafx.application.Application;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.stage.Stage;
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
public class Calculator extends Application {
|
||||
public class Calculator extends JFrame implements ActionListener {
|
||||
private JTextField display;
|
||||
private double num1 = 0, num2 = 0, result = 0;
|
||||
private String operation = "";
|
||||
|
||||
public Calculator() {
|
||||
setTitle("简易计算器");
|
||||
setSize(400, 600);
|
||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
setLayout(new BorderLayout());
|
||||
|
||||
// 显示屏
|
||||
display = new JTextField();
|
||||
display.setEditable(false);
|
||||
display.setHorizontalAlignment(JTextField.RIGHT);
|
||||
add(display, BorderLayout.NORTH);
|
||||
|
||||
// 按钮面板
|
||||
JPanel panel = new JPanel();
|
||||
panel.setLayout(new GridLayout(4, 4, 10, 10));
|
||||
String[] buttons = {"7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", "C", "0", "=", "+"};
|
||||
for (String text : buttons) {
|
||||
JButton button = new JButton(text);
|
||||
button.addActionListener(this);
|
||||
panel.add(button);
|
||||
}
|
||||
add(panel, BorderLayout.CENTER);
|
||||
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start(Stage primaryStage) throws Exception {
|
||||
FXMLLoader loader = new FXMLLoader(getClass().getResource("Calculator.fxml"));
|
||||
Scene scene = new Scene(loader.load());
|
||||
primaryStage.setTitle("简易计算器");
|
||||
primaryStage.setScene(scene);
|
||||
primaryStage.show();
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
String command = e.getActionCommand();
|
||||
if (command.equals("C")) {
|
||||
clearDisplay();
|
||||
} else if (command.equals("=")) {
|
||||
calculateResult();
|
||||
} else {
|
||||
handleInput(command);
|
||||
}
|
||||
}
|
||||
|
||||
private void handleInput(String input) {
|
||||
if (input.matches("[0-9]")) {
|
||||
display.setText(display.getText() + input);
|
||||
} else {
|
||||
operation = input;
|
||||
num1 = Double.parseDouble(display.getText());
|
||||
display.setText("");
|
||||
}
|
||||
}
|
||||
|
||||
private void calculateResult() {
|
||||
num2 = Double.parseDouble(display.getText());
|
||||
switch (operation) {
|
||||
case "+":
|
||||
result = num1 + num2;
|
||||
break;
|
||||
case "-":
|
||||
result = num1 - num2;
|
||||
break;
|
||||
case "*":
|
||||
result = num1 * num2;
|
||||
break;
|
||||
case "/":
|
||||
if (num2 != 0) {
|
||||
result = num1 / num2;
|
||||
} else {
|
||||
display.setText("Error");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case "%":
|
||||
result = num1 % num2;
|
||||
break;
|
||||
}
|
||||
display.setText(String.valueOf(result));
|
||||
}
|
||||
|
||||
private void clearDisplay() {
|
||||
display.setText("");
|
||||
num1 = 0;
|
||||
num2 = 0;
|
||||
result = 0;
|
||||
operation = "";
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
launch(args);
|
||||
new Calculator();
|
||||
}
|
||||
}
|
||||
|
@ -1,122 +0,0 @@
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.control.Button;
|
||||
import javafx.event.ActionEvent;
|
||||
|
||||
public class CalculatorController {
|
||||
|
||||
@FXML
|
||||
private TextField inputField;
|
||||
@FXML
|
||||
private TextField inputField1; // 用于显示计算记录
|
||||
|
||||
private double firstNumber = 0;
|
||||
private String operator = "";
|
||||
private boolean isOperationClicked = false;
|
||||
|
||||
@FXML
|
||||
protected void handleNumberAction(ActionEvent event) {
|
||||
Button button = (Button) event.getSource();
|
||||
String number = button.getText();
|
||||
if (isOperationClicked) {
|
||||
inputField.clear();
|
||||
isOperationClicked = false;
|
||||
}
|
||||
inputField.setText(inputField.getText() + number);
|
||||
}
|
||||
|
||||
@FXML
|
||||
protected void handleAddAction(ActionEvent event) {
|
||||
performOperation("+");
|
||||
}
|
||||
|
||||
@FXML
|
||||
protected void handleSubtractAction(ActionEvent event) {
|
||||
performOperation("-");
|
||||
}
|
||||
|
||||
@FXML
|
||||
protected void handleMultiplyAction(ActionEvent event) {
|
||||
performOperation("*");
|
||||
}
|
||||
|
||||
@FXML
|
||||
protected void handleDivideAction(ActionEvent event) {
|
||||
performOperation("/");
|
||||
}
|
||||
|
||||
@FXML
|
||||
protected void handleModulusAction(ActionEvent event) {
|
||||
performOperation("%");
|
||||
}
|
||||
|
||||
private void performOperation(String op) {
|
||||
firstNumber = Double.parseDouble(inputField.getText());
|
||||
operator = op;
|
||||
isOperationClicked = true;
|
||||
}
|
||||
|
||||
@FXML
|
||||
protected void handleEqualAction(ActionEvent event) {
|
||||
double secondNumber = Double.parseDouble(inputField.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 {
|
||||
inputField.setText("Error");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case "%":
|
||||
result = firstNumber % secondNumber;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
inputField.setText(String.valueOf(result));
|
||||
recordOperation(firstNumber, secondNumber, result);
|
||||
}
|
||||
|
||||
private void recordOperation(double a, double b, double result) {
|
||||
String operation = a + " " + operator + " " + b + " = " + result;
|
||||
inputField1.setText(inputField1.getText() + "\n" + operation);
|
||||
}
|
||||
|
||||
@FXML
|
||||
protected void handleClearAction(ActionEvent event) {
|
||||
inputField.clear();
|
||||
firstNumber = 0;
|
||||
operator = "";
|
||||
isOperationClicked = false;
|
||||
}
|
||||
|
||||
@FXML
|
||||
protected void handleClearsAction(ActionEvent event) {
|
||||
inputField1.clear();
|
||||
}
|
||||
|
||||
@FXML
|
||||
protected void handlePointAction(ActionEvent event) {
|
||||
if (!inputField.getText().contains(".")) {
|
||||
inputField.setText(inputField.getText() + ".");
|
||||
}
|
||||
}
|
||||
|
||||
@FXML
|
||||
protected void handleRemoveAction(ActionEvent event) {
|
||||
inputField1.clear();
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
# 默认忽略的文件
|
||||
/shelf/
|
||||
/workspace.xml
|
@ -1,11 +0,0 @@
|
||||
<?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$" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
@ -1,6 +0,0 @@
|
||||
<?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 (2)" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/Calculator.iml" filepath="$PROJECT_DIR$/.idea/Calculator.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
Binary file not shown.
Binary file not shown.
@ -1,116 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.control.TextField?>
|
||||
<?import javafx.scene.layout.AnchorPane?>
|
||||
<?import javafx.scene.layout.ColumnConstraints?>
|
||||
<?import javafx.scene.layout.GridPane?>
|
||||
<?import javafx.scene.layout.RowConstraints?>
|
||||
<?import javafx.scene.text.Font?>
|
||||
|
||||
<AnchorPane prefHeight="341.0" prefWidth="375.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.171" fx:controller="CalculatorController">
|
||||
<TextField fx:id="inputField" editable="false" layoutX="14.0" layoutY="14.0" prefHeight="80.0" prefWidth="210.0" />
|
||||
|
||||
<GridPane hgap="10" layoutX="20.0" layoutY="70.0" vgap="10">
|
||||
<columnConstraints>
|
||||
<ColumnConstraints />
|
||||
</columnConstraints>
|
||||
<rowConstraints>
|
||||
<RowConstraints />
|
||||
</rowConstraints>
|
||||
</GridPane>
|
||||
<Button graphicTextGap="5.0" layoutX="30.0" layoutY="100.0" onAction="#handleAddAction" prefHeight="30.0" prefWidth="30.0" text="+" wrapText="true">
|
||||
<font>
|
||||
<Font size="15.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<Button layoutX="180.0" layoutY="250.0" onAction="#handleEqualAction" prefHeight="80.0" prefWidth="30.0" text="=" />
|
||||
|
||||
<Button layoutX="180.0" layoutY="150.0" onAction="#handleClearAction" prefHeight="30.0" prefWidth="30.0" text="C" />
|
||||
<Button graphicTextGap="5.0" layoutX="80.0" layoutY="100.0" onAction="#handleSubtractAction" prefHeight="30.0" prefWidth="30.0" text="-" wrapText="true">
|
||||
<font>
|
||||
<Font size="15.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<Button graphicTextGap="5.0" layoutX="130.0" layoutY="150.0" onAction="#handleNumberAction" prefHeight="30.0" prefWidth="30.0" text="9" wrapText="true">
|
||||
<font>
|
||||
<Font size="15.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<Button graphicTextGap="5.0" layoutX="80.0" layoutY="150.0" onAction="#handleNumberAction" prefHeight="30.0" prefWidth="30.0" text="8" wrapText="true">
|
||||
<font>
|
||||
<Font size="15.0" />
|
||||
</font>
|
||||
</Button>
|
||||
|
||||
<Button graphicTextGap="5.0" layoutX="30.0" layoutY="150.0" onAction="#handleNumberAction" prefHeight="30.0" prefWidth="30.0" text="7" wrapText="true">
|
||||
<font>
|
||||
<Font size="15.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<Button graphicTextGap="5.0" layoutX="130.0" layoutY="100.0" onAction="#handleMultiplyAction" prefHeight="30.0" prefWidth="30.0" text="*" wrapText="true">
|
||||
<font>
|
||||
<Font size="15.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<Button graphicTextGap="5.0" layoutX="130.0" layoutY="200.0" onAction="#handleNumberAction" prefHeight="30.0" prefWidth="30.0" text="6" wrapText="true">
|
||||
<font>
|
||||
<Font size="15.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<Button graphicTextGap="5.0" layoutX="80.0" layoutY="200.0" onAction="#handleNumberAction" prefHeight="30.0" prefWidth="30.0" text="5" wrapText="true">
|
||||
<font>
|
||||
<Font size="15.0" />
|
||||
</font>
|
||||
</Button>
|
||||
|
||||
<Button graphicTextGap="5.0" layoutX="30.0" layoutY="200.0" onAction="#handleNumberAction" prefHeight="30.0" prefWidth="30.0" text="4" wrapText="true">
|
||||
<font>
|
||||
<Font size="15.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<Button graphicTextGap="5.0" layoutX="180.0" layoutY="100.0" onAction="#handleDivideAction" prefHeight="30.0" prefWidth="30.0" text="/" wrapText="true">
|
||||
<font>
|
||||
<Font size="15.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<Button graphicTextGap="5.0" layoutX="130.0" layoutY="250.0" onAction="#handleNumberAction" prefHeight="30.0" prefWidth="30.0" text="3" wrapText="true">
|
||||
<font>
|
||||
<Font size="15.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<Button graphicTextGap="5.0" layoutX="80.0" layoutY="250.0" onAction="#handleNumberAction" prefHeight="30.0" prefWidth="30.0" text="2" wrapText="true">
|
||||
<font>
|
||||
<Font size="15.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<Button graphicTextGap="5.0" layoutX="30.0" layoutY="250.0" onAction="#handleNumberAction" prefHeight="30.0" prefWidth="30.0" text="1" wrapText="true">
|
||||
<font>
|
||||
<Font size="15.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<Button graphicTextGap="5.0" layoutX="130.0" layoutY="300.0" onAction="#handlePointAction" prefHeight="30.0" prefWidth="30.0" text="." wrapText="true">
|
||||
<font>
|
||||
<Font size="15.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<Button layoutX="30.0" layoutY="300.0" onAction="#handleModulusAction" prefHeight="30.0" prefWidth="30.0" text="\%" />
|
||||
<Button graphicTextGap="5.0" layoutX="80.0" layoutY="300.0" onAction="#handleNumberAction" prefHeight="30.0" prefWidth="30.0" text="0" wrapText="true">
|
||||
<font>
|
||||
<Font size="15.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<Button graphicTextGap="5.0" layoutX="180.0" layoutY="200.0" onAction="#handleClearsAction" prefHeight="30.0" prefWidth="30.0" text="A" wrapText="true">
|
||||
<font>
|
||||
<Font size="15.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<TextField fx:id="inputField1" editable="false" layoutX="225.0" layoutY="99.0" prefHeight="230.0" prefWidth="140.0" />
|
||||
<TextField fx:id="inputField2" editable="false" layoutX="230.0" layoutY="20.0" prefHeight="20.0" prefWidth="120.0" text="计算器计算记录" />
|
||||
<Button graphicTextGap="5.0" layoutX="250.0" layoutY="60.0" onAction="#handleRemoveAction" text="清空记录" wrapText="true">
|
||||
<font>
|
||||
<Font size="15.0" />
|
||||
</font>
|
||||
</Button>
|
||||
<!-- <View layoutX="-134.0" layoutY="-155.0" />-->
|
||||
</AnchorPane>
|
@ -1,2 +0,0 @@
|
||||
# Calculator
|
||||
|
Loading…
Reference in new issue