নিচে একটি সাধারণ ক্যালকুলেটর অ্যাপ তৈরি করা হয়েছে, যেখানে Java Swing ব্যবহার করে UI তৈরি করা হয়েছে। এই ক্যালকুলেটর অ্যাপে সাধারণ যোগ, বিয়োগ, গুণ এবং ভাগ অপারেশন করা যাবে।
১. ক্যালকুলেটর ক্লাস তৈরি করা
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Calculator extends JFrame implements ActionListener {
private JTextField display;
private double num1 = 0, num2 = 0, result = 0;
private char operator;
public Calculator() {
setTitle("Calculator");
setSize(400, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
// Display Field
display = new JTextField();
display.setFont(new Font("Arial", Font.BOLD, 24));
display.setEditable(false);
add(display, BorderLayout.NORTH);
// Button Panel
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(4, 4, 10, 10));
// Button Text Array
String[] buttons = {
"7", "8", "9", "/",
"4", "5", "6", "*",
"1", "2", "3", "-",
"0", ".", "=", "+"
};
// Adding Buttons to Panel
for (String text : buttons) {
JButton button = new JButton(text);
button.setFont(new Font("Arial", Font.BOLD, 24));
button.addActionListener(this);
buttonPanel.add(button);
}
add(buttonPanel, BorderLayout.CENTER);
}
@Override
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
// যদি সংখ্যার বোতাম টিপা হয়
if (command.charAt(0) >= '0' && command.charAt(0) <= '9' || command.equals(".")) {
display.setText(display.getText() + command);
}
// যদি অপারেটর বোতাম টিপা হয়
else if (command.equals("+") || command.equals("-") || command.equals("*") || command.equals("/")) {
num1 = Double.parseDouble(display.getText());
operator = command.charAt(0);
display.setText("");
}
// যদি "=" বোতাম টিপা হয়
else if (command.equals("=")) {
num2 = Double.parseDouble(display.getText());
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num2 != 0 ? num1 / num2 : 0;
break;
}
display.setText(String.valueOf(result));
num1 = result;
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
Calculator calculator = new Calculator();
calculator.setVisible(true);
});
}
}
কোড ব্যাখ্যা
JFrame সেটআপ:
Calculatorক্লাসটিJFrameএক্সটেন্ড করেছে, যা মেইন UI উইন্ডো তৈরি করতে সাহায্য করে।setTitle("Calculator")দিয়ে উইন্ডোর টাইটেল সেট করা হয়েছে এবংsetSize(400, 500)দিয়ে আকার নির্ধারণ করা হয়েছে।
ডিসপ্লে ফিল্ড:
displayনামে একটিJTextFieldতৈরি করা হয়েছে, যা ক্যালকুলেটরের আউটপুট দেখায়। এটিsetEditable(false)দিয়ে কেবল রিড-অনলি করা হয়েছে।
বাটন প্যানেল:
- একটি
JPanelতৈরি করে সেটিকেGridLayoutদিয়ে ৪x৪ গ্রিডে সাজানো হয়েছে, যেখানে ক্যালকুলেটরের সংখ্যা এবং অপারেটর বাটনগুলো রাখা হয়েছে। - বাটনের টেক্সট
String[] buttonsঅ্যারে থেকে নেওয়া হয়েছে এবং লুপের মাধ্যমে বাটন তৈরি করা হয়েছে।
ইভেন্ট হ্যান্ডলিং:
actionPerformed(ActionEvent e)মেথডে ইভেন্ট হ্যান্ডল করা হয়েছে। যখন কোনো বাটন টিপা হয়, তখন তার অ্যাকশন কমান্ডcommandভ্যারিয়েবলে সংরক্ষণ করা হয়।if (command.charAt(0) >= '0' && command.charAt(0) <= '9' || command.equals("."))শর্ত দিয়ে চেক করা হয়েছে যে, বাটনটি সংখ্যা কিনা।- অপারেটরের জন্য
operatorভ্যারিয়েবলে সেট করা হয়েছে এবং ডিসপ্লে খালি করা হয়েছে। =বোতামেswitchস্টেটমেন্টের মাধ্যমে সঠিক অপারেশন করা হয়েছে এবংdisplay.setText(String.valueOf(result))দিয়ে আউটপুট দেখানো হয়েছে।
main মেথড:
mainমেথডেCalculatorক্লাসের একটি ইনস্ট্যান্স তৈরি করা হয়েছে এবং সেটি দৃশ্যমান করা হয়েছে।
এই ক্যালকুলেটর অ্যাপের বৈশিষ্ট্য
- সংখ্যা ইনপুট: সংখ্যা ইনপুট দেওয়া যায়।
- অপারেটর: যোগ, বিয়োগ, গুণ এবং ভাগ অপারেটরের সাপোর্ট।
- রেজাল্ট: সমান বোতাম টিপে রেজাল্ট দেখা যায়।
- ডিসপ্লে রিসেট: প্রতিটি অপারেটরের পর ডিসপ্লে রিসেট হয় এবং নতুন সংখ্যা ইনপুট নেয়া যায়।
এই কোডটি চালানোর পর একটি সাধারণ ক্যালকুলেটর অ্যাপ তৈরি হবে, যা সংখ্যানুপাতে ব্যবহারযোগ্য এবং UI ডিজাইনসহ যুক্ত থাকবে।
Content added By