Java Calculator¶
āĻāĻāĻžāύ⧠āĻāĻāĻāĻŋ āϏāĻšāĻ āĻāĻžāĻāĻž Calculator āĻŦāĻžāύāĻžāĻā§āĻāĻŋāĨ¤ āϝāĻžāϰāĻž āĻāĻŽāϰāĻž āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ
Click to expand this block
Everything indented under this line will be hidden.
You can add paragraphs, lists, or code here.
Button āĻā§āϞā§āϰ āĻāύā§āϝ Level 1 āĻšāĻŋāϏā§āĻŦā§ āĻāĻā§āϞ⧠use āĻāϰāĻŦā§āĻ
Manual Buttons
// Standard Number Buttons (0-9)
JButton buttonZero = new JButton("0");
JButton buttonOne = new JButton("1");
JButton buttonTwo = new JButton("2");
JButton buttonThree = new JButton("3");
JButton buttonFour = new JButton("4");
JButton buttonFive = new JButton("5");
JButton buttonSix = new JButton("6");
JButton buttonSeven = new JButton("7");
JButton buttonEight = new JButton("8");
JButton buttonNine = new JButton("9");
// Basic Operators & Controls
JButton buttonDot = new JButton(".");
JButton buttonEqual = new JButton("=");
JButton buttonAdd = new JButton("+");
JButton buttonSub = new JButton("-");
JButton buttonMul = new JButton("x");
JButton buttonDiv = new JButton("/");
JButton buttonClear = new JButton("C");
JButton buttonDelete= new JButton("DEL");
// Scientific Functions (Trigonometry)
JButton buttonSin = new JButton("sin");
JButton buttonCos = new JButton("cos");
JButton buttonTan = new JButton("tan");
JButton buttonAsin = new JButton("sinâģš");
JButton buttonAcos = new JButton("cosâģš");
JButton buttonAtan = new JButton("tanâģš");
// Scientific Functions (Logarithms & Powers)
JButton buttonLog = new JButton("log");
JButton buttonLn = new JButton("ln");
JButton buttonSqrt = new JButton("â");
JButton buttonCbrt = new JButton("Âŗâ");
JButton buttonSquare= new JButton("x²");
JButton buttonCube = new JButton("xÂŗ");
JButton buttonPower = new JButton("xʸ");
JButton buttonFact = new JButton("n!");
// Constants & Extras
JButton buttonPi = new JButton("Ī");
JButton buttonE = new JButton("e");
JButton buttonOpenBracket = new JButton("(");
JButton buttonCloseBracket = new JButton(")");
JButton buttonMod = new JButton("mod");
JButton buttonPercent = new JButton("%");
```java
// ā§§. āĻā§āϞā§āĻŦāĻžāϞ āĻŦāĻžāĻāύ āϏā§āĻā§āϰā§āĻ (Java-āϰ HashMap āĻāϰ āĻŦāĻŋāĻāϞā§āĻĒ)
const allButtons = {};
// ⧍. āĻŦāĻžāĻāύ āϞā§āĻŦā§āϞā§āϰ āĻ
ā§āϝāĻžāϰā§
const numAndBasicOps = [
"7", "8", "9", "/", "C",
"4", "5", "6", "x", "DEL",
"1", "2", "3", "-", "=",
"0", ".", "+", "(", ")"
];
// ā§Š. āĻā§āϰāĻŋāĻĄ āĻĒā§āϝāĻžāύā§āϞ āϤā§āϰāĻŋ āĻāϰāĻž (Java-āϰ JPanel āĻāϰ āĻŦāĻŋāĻāϞā§āĻĒ)
const buttonPanel = document.createElement("div");
buttonPanel.style.display = "grid";
buttonPanel.style.gridTemplateColumns = "repeat(5, 1fr)";
buttonPanel.style.gap = "5px";
// ā§Ē. āϞā§āĻĒ āĻāĻžāϞāĻŋā§ā§ āĻĄāĻžāĻāύāĻžāĻŽāĻŋāĻāĻžāϞāĻŋ āĻŦāĻžāĻāύ āϰā§āύā§āĻĄāĻžāϰ āĻāϰāĻž
numAndBasicOps.forEach(label => {
const button = document.createElement("button");
button.innerText = label;
button.style.fontSize = "16px";
button.style.fontWeight = "bold";
// āĻā§āϞāĻŋāĻ āϞāĻŋāϏā§āύāĻžāϰ (Java-āϰ addActionListener āĻāϰ āĻŦāĻŋāĻāϞā§āĻĒ)
button.addEventListener("click", (e) => {
console.log("You pressed: " + label);
});
// āĻŽā§āϝāĻžāĻĒā§ āĻĒā§āĻļ āĻāϰ⧠āϰāĻžāĻāĻž
allButtons[label] = button;
// āĻŽā§āĻāύ āĻĒā§āϝāĻžāύā§āϞ⧠āϝā§āĻā§āϤ āĻāϰāĻž
buttonPanel.appendChild(button);
});
// ā§Ģ. āϞā§āĻĒā§āϰ āĻŦāĻžāĻāϰ⧠āĻāϏ⧠āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻŦāĻžāĻāύ āϏā§āĻāĻžāĻāϞ āĻāϰāĻž (Java-āϰ get() āĻāϰ āĻŦāĻŋāĻāϞā§āĻĒ)
if (allButtons["C"]) {
allButtons["C"].style.backgroundColor = "red";
allButtons["C"].style.color = "white";
}
if (allButtons["="]) {
allButtons["="].style.backgroundColor = "green";
allButtons["="].style.color = "white";
}
// āϏā§āĻā§āϰāĻŋāύ⧠āĻ
ā§āϝāĻžāĻĒā§āύā§āĻĄ āĻāϰāĻž (Java-āϰ this.add() āĻāϰ āĻŦāĻŋāĻāϞā§āĻĒ)
document.body.appendChild(buttonPanel);
```
Components Properties
āĻāĻĒāύāĻŋ āϝā§āĻšā§āϤ⧠āĻā§ā§āĻŦ āĻā§āĻāύā§āϞāĻāĻŋ (HTML, CSS, JS) āĻāĻžāϞ⧠āĻĒāĻžāϰā§, āϤāĻžāĻ āĻāĻžāĻāĻžāϰ āĻāĻ āĻāĻāύā§āĻĄā§ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻžāϰ āĻā§āĻĄāĻāĻž āĻŦā§āĻāϤ⧠āĻāĻĒāύāĻžāϰ āĻŽāĻžāϤā§āϰ āĻĻā§āĻ āĻŽāĻŋāύāĻŋāĻ āϞāĻžāĻāĻŦā§!
āĻāĻžāĻāĻžāϤ⧠(Swing) āĻāĻŽāϰāĻž āĻāĻāĻāĻž āĻāϞāĻŋāĻŽā§āύā§āĻ āϤā§āϰāĻŋ, āϏā§āĻāĻžāĻāϞ āĻāĻŦāĻ āϏā§āĻā§āϰāĻŋāύ⧠āĻŦāϏāĻžāύā§āϰ āĻāĻžāĻ āĻāĻāĻāĻžāύāĻž āĻāĻžāĻāĻž āĻā§āĻĄ āϞāĻŋāĻā§ āĻāϰāĻŋāĨ¤ āĻāĻŋāύā§āϤ⧠āĻā§ā§āĻŦā§ āĻāĻŽāϰāĻž āĻāĻ āĻāĻžāĻāĻāĻžāĻā§ ā§Š āĻāĻžāĻā§ āĻāĻžāĻ āĻāϰāĻŋ:
- HTML: āĻāϞāĻŋāĻŽā§āύā§āĻ āĻŦāĻž āĻā§āϝāĻžāĻ āϤā§āϰāĻŋ āĻāϰāĻžāĨ¤
- CSS: āϏā§āĻāĻžāϰ āϏāĻžāĻāĻ, āĻāĻžāϞāĻžāϰ, āĻĒāĻāĻŋāĻļāύ āĻ āĻŋāĻ āĻāϰāĻž (āϏā§āĻāĻžāĻāϞāĻŋāĻ)āĨ¤
- JS: āϏā§āĻāĻžāĻā§ āĻĄāĻŽā§ āĻŦāĻž āĻĒā§āϝāĻžāϰā§āύā§āĻ āĻāύā§āĻā§āĻāύāĻžāϰ⧠āĻĒā§āĻļ āĻāϰāĻžāĨ¤
āĻāϞ⧠āĻāĻĒāύāĻžāϰ āĻāĻžāĻāĻž āĻā§āĻĄā§āϰ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϞāĻžāĻāύāĻā§ HTML, CSS āĻāϰ JS āĻāϰ āϏāĻžāĻĨā§ āĻŽā§āĻā§āĻŽā§āĻāĻŋ āϤā§āϞāύāĻž āĻāϰ⧠āĻŦā§āĻāĻŋ:
ā§§. JLabel āĻ
āĻāĻļā§āϰ āϤā§āϞāύāĻž¶
āĻāĻžāĻāĻžāϤ⧠JLabel āĻŽā§āϞāϤ āĻā§āĻā§āϏāĻ āĻŦāĻž āύā§āĻāĻŋāĻļ āĻĻā§āĻāĻžāύā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§āĨ¤ āĻā§ā§āĻŦā§ āĻāĻāĻžāϰ āϏāĻŦāĻā§ā§ā§ āĻāĻžāĻā§āϰ āϰā§āĻĒ āĻšāϞ⧠<span> āĻŦāĻž <label> āĻā§āϝāĻžāĻāĨ¤
| Java Swing āĻā§āĻĄ | Web (HTML / CSS / JS) āĻāϰ āϏāĻŽāĻāĻā§āώ āϰā§āĻĒ | āĻŦā§āϝāĻžāĻā§āϝāĻž |
|---|---|---|
label.setBounds(250, 0, 50, 50); |
CSS: |
position: absolute;
left: 250px; top: 0px;
width: 50px; height: 50px; | āĻāĻžāĻāĻžāϰ setBounds āĻĻāĻŋā§ā§ āĻāĻāĻĻāĻŽ āĻĒāĻŋāĻā§āϏā§āϞ āĻŽā§āĻĒā§ āĻĒāĻāĻŋāĻļāύ āĻĻā§āĻā§āĻž āĻšā§, āϝāĻž CSS-āĻāϰ absolute āĻĒāĻāĻŋāĻļāύāĻŋāĻā§ā§āϰ āĻŽāϤā§āĨ¤ |
| label.setForeground(Color.white); | CSS:
color: white; | āĻāĻžāĻāĻžāϤ⧠āĻā§āĻā§āϏāĻā§āϰ āĻāĻžāϞāĻžāϰ āĻŦāĻĻāϞāĻžāϤ⧠setForeground āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§āĨ¤ |
| frame.add(label);
(āĻāĻĒāύāĻžāϰ āĻā§āĻĄā§ āĻā§āϞ⧠label.add(label) āĻāĻŋāϞ, āĻāĻāĻž frame.add āĻšāĻŦā§) | JS:
frameElement.appendChild(label); | āĻāĻžāĻāĻžāϤ⧠āϏā§āĻā§āϰāĻŋāύ⧠āĻĻā§āĻāĻžāύā§āϰ āĻāύā§āϝ āĻŽā§āĻāύ āĻĢā§āϰā§āĻŽā§ add() āĻāϰāϤ⧠āĻšā§, āϝāĻž JS-āĻāϰ appendChild() āĻāϰ āĻŽāϤā§āĨ¤ |
⧍. JTextField āĻ
āĻāĻļā§āϰ āϤā§āϞāύāĻž¶
āĻāĻžāĻāĻžāϰ JTextField āĻšāϞ⧠āĻāύāĻĒā§āĻ āύā§āĻā§āĻžāϰ āĻŦāĻā§āϏāĨ¤ āĻā§ā§āĻŦā§ āĻāĻāĻžāϰ āĻšā§āĻŦāĻšā§ āϰā§āĻĒ āĻšāϞ⧠<input type="text"> āĻā§āϝāĻžāĻāĨ¤
| Java Swing āĻā§āĻĄ | Web (HTML / CSS / JS) āĻāϰ āϏāĻŽāĻāĻā§āώ āϰā§āĻĒ | āĻŦā§āϝāĻžāĻā§āϝāĻž |
|---|---|---|
textField.setBounds(10, 40, 270, 40); |
CSS: |
position: absolute;
left: 10px; top: 40px;
width: 270px; height: 40px; | āĻāύāĻĒā§āĻ āĻŦāĻā§āϏāĻāĻŋāϰ āĻĒāĻŋāĻā§āϏā§āϞ āĻĒāĻžāϰāĻĢā§āĻā§āĻ āĻĒāĻāĻŋāĻļāύ āĻāĻŦāĻ āϏāĻžāĻāĻ (Width, Height) āĻ āĻŋāĻ āĻāϰāĻž āĻšāϞā§āĨ¤ |
| textField.setFont(new Font("Arial", Font.BOLD, 20)); | CSS:
font-family: 'Arial';
font-weight: bold;
font-size: 20px; | āĻāύāĻĒā§āĻ āĻŦāĻā§āϏā§āϰ āĻā§āϤāϰā§āϰ āϞā§āĻāĻžāϰ āĻĢāύā§āĻ āϏā§āĻāĻžāĻāϞ āϏā§āĻ āĻāϰāĻž āĻšāϞā§āĨ¤ |
| textField.setHorizontalAlignment(SwingConstants.RIGHT); | CSS:
text-align: right; | āĻā§āϝāĻžāϞāĻā§āϞā§āĻāϰ⧠āϝā§āĻŽāύ āĻĄāĻžāύāĻĻāĻŋāĻ āĻĨā§āĻā§ āϞā§āĻāĻž āĻļā§āϰ⧠āĻšā§, āĻāĻžāĻāĻžāϤ⧠āϏā§āĻāĻž RIGHT āĻ
ā§āϝāĻžāϞāĻžāĻāύāĻŽā§āύā§āĻ āĻĻāĻŋā§ā§ āĻāϰāĻž āĻšā§āĨ¤ |
| frame.add(textField); | JS:
frameElement.appendChild(textField); | āĻāύāĻĒā§āĻ āĻŦāĻā§āϏāĻāĻŋāĻā§ āĻŽā§āĻāύ āĻāĻāύā§āĻĄā§ āĻŦāĻž āĻĢā§āϰā§āĻŽā§ āϝā§āĻā§āϤ āĻāϰāĻž āĻšāϞā§āĨ¤ |
ā§Š. āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻā§āĻĄāĻāĻŋ āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āĻā§ā§āĻŦ āĻĢāϰāĻŽā§āϝāĻžāĻā§ āϞāĻŋāĻāϤāĻžāĻŽ:¶
āĻāĻĒāύāĻžāϰ āĻāĻ addComponents() āĻŽā§āĻĨāĻĄāĻāĻž āϝāĻĻāĻŋ āĻŦā§āϰāĻžāĻāĻāĻžāϰā§āϰ āĻāύā§āϝ āϞāĻŋāĻāϤ⧠āĻšāϤā§, āϤāĻŦā§ āĻāĻŽāϰāĻž āĻāĻāĻžāĻŦā§ āϞāĻŋāĻāϤāĻžāĻŽ:
HTML (āĻā§āϝāĻžāĻ āϤā§āϰāĻŋ)¶
CSS (āϏā§āĻāĻžāĻāϞāĻŋāĻ āĻ āĻĒāĻāĻŋāĻļāύ)¶
#frame {
position: relative; /* āĻāĻžāĻāĻžāϰ JFrame āĻāϰ āĻŽāϤ⧠āĻĒā§āϝāĻžāϰā§āύā§āĻ āĻāύā§āĻā§āĻāύāĻžāϰ */
width: 300px;
height: 400px;
}
#label {
position: absolute;
left: 250px; top: 0px;
width: 50px; height: 50px;
color: white;
}
#textField {
position: absolute;
left: 10px; top: 40px;
width: 270px; height: 40px;
font-family: 'Arial';
font-weight: bold;
font-size: 20px;
text-align: right; /* āĻĄāĻžāύāĻĻāĻŋāĻ āĻĨā§āĻā§ āϞā§āĻāĻž āĻļā§āϰ⧠āĻšāĻŦā§ */
}
JavaScript (addComponents āĻŽā§āĻĨāĻĄā§āϰ āĻāϏāϞ āϰā§āĻĒ)¶
āĻāĻžāĻāĻžāϤ⧠āĻāĻŽāϰāĻž āϝā§āĻŽāύ āĻā§āĻĄ āĻĻāĻŋā§ā§ āĻĢā§āϰā§āĻŽā§āϰ āĻā§āϤāϰ āĻāĻĒāĻžāĻĻāĻžāύāĻā§āϞ⧠āĻĸā§āĻāĻŋā§ā§ āĻĻāĻŋāĻā§āĻāĻŋ, JS-āĻ āϏā§āĻāĻž āĻĻā§āĻāϤ⧠āĻāĻŽāύ āĻšāϤā§:
function addComponents() {
const frame = document.getElementById("frame");
const label = document.getElementById("label");
const textField = document.getElementById("textField");
// āĻāĻžāĻāĻžāϰ frame.add(label) āĻāĻŦāĻ frame.add(textField) āĻāϰ āĻāĻžāĻ:
frame.appendChild(label);
frame.appendChild(textField);
}
āϏāĻšāĻ āĻāĻĨāĻžā§, āĻāĻžāĻāĻž āϏā§āĻāĻ (Swing) āĻ HTML āĻāĻŦāĻ CSS āĻāϰ āĻāϞāĻžāĻĻāĻž āĻā§āύ⧠āĻĢāĻžāĻāϞ āĻĨāĻžāĻā§ āύāĻžāĨ¤ āĻŽā§āĻĨāĻĄā§āϰ āĻā§āϤāϰ āĻāĻžāĻāĻž āĻā§āĻĄ āϞāĻŋāĻā§āĻ āĻāĻāϏāĻžāĻĨā§ āĻāϞāĻŋāĻŽā§āύā§āĻ āϤā§āϰāĻŋ, CSS-āĻāϰ āĻŽāϤ⧠āϏā§āĻāĻžāĻāϞ āĻāĻŦāĻ JS-āĻāϰ āĻŽāϤ⧠āĻ ā§āϝāĻžāĻĒā§āύā§āĻĄ āĻāϰāĻžāϰ āĻāĻžāĻāĻā§āϞ⧠āĻāϰ⧠āĻĢā§āϞāĻž āĻšā§āĨ¤