package may6activity;
public class CalculatorApp extends [Link] {
private static final [Link] logger =
[Link]([Link]());
public CalculatorApp() {
initComponents();
//method
private void calculate(char c) {
try {
double num1 = [Link]([Link]().trim());
double num2 = [Link]([Link]().trim());
double result;
switch (c) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case 'x':
result = num1 * num2;
break;
case '/':
if (num2 == 0) {
[Link]("Error: Division by zero");
return;
result = num1 / num2;
break;
default:
[Link]("Unknown operation");
return;
//validation
String n1, n2, res;
if (num1 == (long) num1) {
n1 = [Link]((long) num1);
} else {
n1 = [Link](num1);
if (num2 == (long) num2) {
n2 = [Link]((long) num2);
} else {
n2 = [Link](num2);
if (result == (long) result) {
res = [Link]((long) result);
} else {
res = [Link](result);
[Link](n1 + " " + c + " " + n2 + " = " + res);
} catch (NumberFormatException e) {
[Link]("Error: Invalid input");
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jSplitPane1 = new [Link]();
jPanel1 = new [Link]();
jLabel1 = new [Link]();
Field1 = new [Link]();
Field2 = new [Link]();
jLabel2 = new [Link]();
jSplitPane2 = new [Link]();
resultJPanel = new [Link]();
resultJLabel = new [Link]();
txt_results = new [Link]();
jPanel2 = new [Link]();
btnAdd = new [Link]();
btnSub = new [Link]();
btnMul = new [Link]();
btnDiv = new [Link]();
setDefaultCloseOperation([Link].EXIT_ON_CLOSE);
setPreferredSize(new [Link](700, 350));
getContentPane().setLayout(null);
[Link](300);
[Link](false);
[Link](new [Link](350, 400));
[Link](new [Link]("Segoe UI", 0, 18)); // NOI18N
[Link]("Enter 1st Number:");
[Link](new [Link]("Segoe UI", 0, 24)); // NOI18N
[Link](this::Field1ActionPerformed);
[Link](new [Link]("Segoe UI", 0, 24)); // NOI18N
[Link](this::Field2ActionPerformed);
[Link](new [Link]("Segoe UI", 0, 18)); // NOI18N
[Link]("Enter 2nd Number:");
[Link] jPanel1Layout = new
[Link](jPanel1);
[Link](jPanel1Layout);
[Link](
[Link]([Link]
NG)
.addGroup([Link]()
.addGap(42, 42, 42)
.addGroup([Link]([Link]
[Link], false)
.addComponent(jLabel1)
.addComponent(jLabel2)
.addComponent(Field1, [Link].DEFAULT_SIZE,
255, Short.MAX_VALUE)
.addComponent(Field2))
.addContainerGap([Link].DEFAULT_SIZE,
Short.MAX_VALUE))
);
[Link](
[Link]([Link]
NG)
.addGroup([Link]()
.addGap(138, 138, 138)
.addComponent(jLabel1)
.addPreferredGap([Link].R
ELATED)
.addComponent(Field1,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE)
.addPreferredGap([Link].U
NRELATED)
.addComponent(jLabel2)
.addPreferredGap([Link].R
ELATED)
.addComponent(Field2,
[Link].PREFERRED_SIZE,
[Link].DEFAULT_SIZE,
[Link].PREFERRED_SIZE)
.addContainerGap(112, Short.MAX_VALUE))
);
[Link](jPanel1);
[Link]().setAccessibleName("Left");
[Link]([Link].VERTICAL_SPLIT);
[Link](new [Link]("Segoe UI", 0, 18)); // NOI18N
[Link]([Link]);
[Link]("-");
txt_results.setFont(new [Link]("Segoe UI", 1, 14)); // NOI18N
txt_results.setText("Results");
[Link] resultJPanelLayout = new
[Link](resultJPanel);
[Link](resultJPanelLayout);
[Link](
[Link]([Link].L
EADING)
.addGroup([Link]()
.addGap(25, 25, 25)
.addComponent(txt_results,
[Link].PREFERRED_SIZE, 62,
[Link].PREFERRED_SIZE)
.addContainerGap(308, Short.MAX_VALUE))
.addGroup([Link],
[Link]()
.addContainerGap()
.addComponent(resultJLabel,
[Link].DEFAULT_SIZE,
[Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
[Link](
[Link]([Link].L
EADING)
.addGroup([Link],
[Link]()
.addContainerGap()
.addComponent(txt_results)
.addPreferredGap([Link].R
ELATED, [Link].DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(resultJLabel,
[Link].PREFERRED_SIZE, 49,
[Link].PREFERRED_SIZE)
.addGap(23, 23, 23))
);
[Link](resultJPanel);
[Link](new [Link](1, 4));
[Link](new [Link](0, 255, 102));
[Link](new [Link]("Segoe UI", 1, 24)); // NOI18N
[Link]("+");
[Link](this::btnAddActionPerformed);
[Link](btnAdd);
[Link](new [Link](255, 153, 51));
[Link](new [Link]("Segoe UI", 1, 24)); // NOI18N
[Link]("-");
[Link](this::btnSubActionPerformed);
[Link](btnSub);
[Link](new [Link](51, 153, 255));
[Link](new [Link]("Segoe UI", 1, 24)); // NOI18N
[Link]("x");
[Link](this::btnMulActionPerformed);
[Link](btnMul);
[Link](new [Link](255, 204, 255));
[Link](new [Link]("Segoe UI", 1, 24)); // NOI18N
[Link]("/");
[Link](this::btnDivActionPerformed);
[Link](btnDiv);
[Link](jPanel2);
[Link](jSplitPane2);
getContentPane().add(jSplitPane1);
[Link](0, 0, 700, 400);
pack();
}// </editor-fold>
private void btnMulActionPerformed([Link] evt) {
calculate('x');
private void btnAddActionPerformed([Link] evt) {
calculate('+');
private void btnSubActionPerformed([Link] evt) {
calculate('-');
}
private void btnDivActionPerformed([Link] evt) {
calculate('/');
private void Field2ActionPerformed([Link] evt) {
// TODO add your handling code here:
private void Field1ActionPerformed([Link] evt) {
// TODO add your handling code here:
// Variables declaration - do not modify
private [Link] Field1;
private [Link] Field2;
private [Link] btnAdd;
private [Link] btnDiv;
private [Link] btnMul;
private [Link] btnSub;
private [Link] jLabel1;
private [Link] jLabel2;
private [Link] jPanel1;
private [Link] jPanel2;
private [Link] jSplitPane1;
private [Link] jSplitPane2;
private [Link] resultJLabel;
private [Link] resultJPanel;
private [Link] txt_results;
// End of variables declaration