import [Link].
*;
import [Link].*;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class Cal {
private static JTextField equationField;
private static JTextField resultField;
private static String currentInput = "";
public static void main(String[] args) {
JFrame frame = new JFrame("Calculator");
[Link](450, 500);
[Link](null);
[Link](null);
[Link](false);
[Link]().setBackground([Link]("#ac94f4"));
JPanel mainPanel = new JPanel();
[Link](10, 10, 400, 500);
[Link](null);
[Link]([Link]("#ac94f4"));
[Link](mainPanel);
Font equField = new Font("Arial", [Link], 18);
Font resField = new Font("Arial", [Link], 28);
Font font = new Font("Arial", [Link], 20);
Font fontBig = new Font("Arial", [Link], 20);
// Equation field (top)
equationField = new JTextField();
[Link](false);
[Link]([Link]("#f8e2ff"));
[Link]([Link]("#8A6DD9"));
[Link](55, 120, 235, 40);
[Link]([Link]([Link]("#f8e2ff"),
1));
[Link](equField);
[Link]([Link]);
[Link](equationField);
// Result field (bottom)
resultField = new JTextField();
[Link](false);
[Link]([Link]("#f8e2ff"));
[Link]([Link]("#7151d0"));
[Link](55, 160, 235, 40);
[Link]([Link]([Link]("#f8e2ff"), 1));
[Link](resField);
[Link]([Link]);
[Link](resultField);
JButton clear = new JButton("CLR");
configureButton(clear);
[Link](font);
[Link](295, 120, 75, 80);
[Link](false);
[Link](clear);
addHoverEffect(clear);
// Add action listeners to buttons
[Link](e -> {
currentInput = "";
[Link]("");
[Link]("");
});
JButton[] numberButtons = new JButton[10];
for (int i = 0; i < 10; i++) {
numberButtons[i] = new JButton([Link](i));
configureButton(numberButtons[i]);
numberButtons[i].setFont(font);
numberButtons[i].setFocusable(false);
addHoverEffect(numberButtons[i]);
final int number = i;
numberButtons[i].addActionListener(e -> {
currentInput += number;
[Link](currentInput);
});
}
// Position number buttons
numberButtons[1].setBounds(135, 205, 75, 45);
numberButtons[4].setBounds(135, 255, 75, 45);
numberButtons[7].setBounds(135, 305, 75, 45);
numberButtons[0].setBounds(135, 355, 75, 45);
numberButtons[2].setBounds(215, 205, 75, 45);
numberButtons[5].setBounds(215, 255, 75, 45);
numberButtons[8].setBounds(215, 305, 75, 45);
numberButtons[3].setBounds(295, 205, 75, 45);
numberButtons[6].setBounds(295, 255, 75, 45);
numberButtons[9].setBounds(295, 305, 75, 45);
for (JButton button : numberButtons) {
[Link](button);
}
JButton dot = new JButton(".");
configureButton2(dot);
[Link](fontBig);
[Link](215, 355, 75, 45);
[Link](false);
[Link](dot);
addHoverEffect(dot);
[Link](e -> {
if () {
currentInput += ".";
[Link](currentInput);
}
});
JButton[] operationButtons = new JButton[4];
String[] operations = {"+", "-", "x", "/"};
for (int i = 0; i < 4; i++) {
operationButtons[i] = new JButton(operations[i]);
configureButton(operationButtons[i]);
operationButtons[i].setFont(font);
operationButtons[i].setFocusable(false);
addHoverEffect(operationButtons[i]);
final String operation = operations[i];
operationButtons[i].addActionListener(e -> {
currentInput += " " + operation + " ";
[Link](currentInput);
});
}
// Position operation buttons
operationButtons[0].setBounds(55, 205, 75, 45); // +
operationButtons[1].setBounds(55, 255, 75, 45); // -
operationButtons[2].setBounds(55, 305, 75, 45); // x
operationButtons[3].setBounds(55, 355, 75, 45); // /
for (JButton button : operationButtons) {
[Link](button);
}
JButton equal = new JButton("=");
configureButton(equal);
[Link](font);
[Link](295, 355, 75, 45);
[Link](false);
[Link](equal);
addHoverEffect(equal);
[Link](e -> {
try {
// Replace 'x' with '*' for evaluation
String expression = [Link]("x", "*");
double result = evaluateExpression(expression);
[Link](formatNumber(result));
} catch (Exception ex) {
[Link]("Error");
}
});
[Link](true);
}
// Method to evaluate the expression
private static double evaluateExpression(String expression) throws
ScriptException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = [Link]("JavaScript");
return (double) [Link](expression);
}
private static String formatNumber(double number) {
if (number == (long) number) {
return [Link]("%d", (long) number);
} else {
return [Link]("%s", number);
}
}
private static void addHoverEffect(JButton button) {
[Link](new [Link]() {
public void mouseEntered([Link] evt) {
[Link]([Link]("#8A6DD9"));
}
public void mouseExited([Link] evt) {
[Link]([Link]("#7151d0"));
}
});
}
private static void configureButton(JButton button) {
[Link]([Link]("#7151d0"));
[Link]([Link]);
[Link](true);
[Link]([Link]([Link]("#7151d0"),
1));
}
private static void configureButton2(JButton button) {
[Link]([Link]("#7151d0"));
[Link]([Link]);
[Link](true);
[Link]([Link]([Link]("#7151d0"),
1));
}
}