Skip to content

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) āφāĻŽāϰāĻž āĻāĻ•āϟāĻž āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āϤ⧈āϰāĻŋ, āĻ¸ā§āϟāĻžāχāϞ āĻāĻŦāĻ‚ āĻ¸ā§āĻ•ā§āϰāĻŋāύ⧇ āĻŦāϏāĻžāύ⧋āϰ āĻ•āĻžāϜ āĻāĻ•āϟāĻžāύāĻž āϜāĻžāĻ­āĻž āϕ⧋āĻĄ āϞāĻŋāϖ⧇ āĻ•āϰāĻŋāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ“ā§Ÿā§‡āĻŦ⧇ āφāĻŽāϰāĻž āĻāχ āĻ•āĻžāϜāϟāĻžāϕ⧇ ā§Š āĻ­āĻžāϗ⧇ āĻ­āĻžāĻ— āĻ•āϰāĻŋ:

  1. HTML: āĻāϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻŦāĻž āĻŸā§āϝāĻžāĻ— āϤ⧈āϰāĻŋ āĻ•āϰāĻžāĨ¤
  2. CSS: āϏ⧇āϟāĻžāϰ āϏāĻžāχāϜ, āĻ•āĻžāϞāĻžāϰ, āĻĒāϜāĻŋāĻļāύ āĻ āĻŋāĻ• āĻ•āϰāĻž (āĻ¸ā§āϟāĻžāχāϞāĻŋāĻ‚)āĨ¤
  3. 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 (āĻŸā§āϝāĻžāĻ— āϤ⧈āϰāĻŋ)

<div id="frame">
    <span id="label"></span>
    <input type="text" id="textField">
</div>

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-āĻāϰ āĻŽāϤ⧋ āĻ…ā§āϝāĻžāĻĒ⧇āĻ¨ā§āĻĄ āĻ•āϰāĻžāϰ āĻ•āĻžāϜāϗ⧁āϞ⧋ āĻ•āϰ⧇ āĻĢ⧇āϞāĻž āĻšā§ŸāĨ¤