I am a student of Jahangirnagar University Dept. of CSE. This was my presentation on OOP Final Lab project. My project was Creating a Scientific Calculator. The presentation slide was made through google slide on ubuntu. So, there might be some difficulties in the slide.
5. GUI Programming
Step 1 : Creating a JFrame using NetBeans IDE
Step 2 : Forming a design using drag & drop
Step 3 : Make sure all buttons are working
Step 4 : Write down the Action performed of all the components
Step 5 : Removing Bug
Step 6 : Run & Execute the programe.
7. Source Code Explanations Contd...
“Calculate” Constructor was called with a function “initComponents()” to
implement it later
“ public Calculate() { //constructor
initComponents();
} “
8. Source Code Explanations Contd...
ActionPerformed pattern of 0-9 digits/buttons & decpoint button
private void DIGITActionPerformed(java.awt.event.ActionEvent evt) {
“ if(!zerodisp && !decdisp){
display1.setText(null);
}
display1.setText(display1.getText()+"DIGIT");
zerodisp = true;
//not for zero
} ”
here ,
function “setText(String Value)” - Sets the text displayed by the text field &
“getText(String Value)” - Obtains the text displayed by the text field.
9. Source Code Explanations Contd...
ActionPerformed on negate:
“private void negateActionPerformed(java.awt.event.ActionEvent evt) {
inb = Double.parseDouble(String.valueOf(display1.getText()));
out=inb * -1;
if(out > -100000000 && out < 100000000){
display1.setText(String.valueOf(out));
}else {
display1.setText("Error");}out=0; }”
Here,
Function “String.valueOf()” - Returns the string representation of the input argument &
“Double.parseDouble()”- Returns a primitive double containing the value of the string:
10. Source Code Explanations Contd...
ActionPerformed on Memory functions:
“private void memoryreadActionPerformed(java.awt.event.ActionEvent evt) {
display1.setText(String.valueOf(memorydisplay.getText())); //took value from memory display &
set that at display1
}
private void memoryclearActionPerformed(java.awt.event.ActionEvent evt) {
memorydisplay.setText("0"); //clears memory from memory display & set value as 0
}
private void memorysaveActionPerformed(java.awt.event.ActionEvent evt) {
memorydisplay.setText(String.valueOf(display1.getText()));}” //took value from display1 & set that at
memory display
11. Source Code Explanations Contd...
ActionPerformed on Arithmetic Operations & PI:
“ private void ARITHMETICActionPerformed(java.awt.event.ActionEvent evt) {
inb=Double.parseDouble(String.valueOf(display1.getText()));
out=inb*inb; //for square operation
/* out = inb*inb*inb for cube operation
* out = Math.sqrt(inb) for square root operation
* out=Math.cbrt(inb) for cube root operation
* out=1/inb for 1 dividev by X */
if(out > -100000000 && out < 100000000){
display1.setText(String.valueOf(out));
} else {
display1.setText("Error");
}
12. Source Code Explanations Contd...
display2.setText(String.valueOf(inb)+"^2"); //for square operation
/*display2.setText(String.valueOf(inb)+"^3"); for cube operation
*display2.setText("√"+String.valueOf(inb)); for square root operation
*display2.setText("3√"+String.valueOf(inb)); for cube root operation
*display2.setText("1/"+String.valueOf(inb)); for 1 divided by X operation
*/
out=0; op=0; }”
“private void piActionPerformed(java.awt.event.ActionEvent evt) {
display1.setText(String.valueOf(Math.PI)); // displays the value of PI
} “
13. Source Code Explanations Contd...
ActionPerformed on Geometic Operations:
“private void sinActionPerformed(java.awt.event.ActionEvent evt) {
inb=Double.parseDouble(String.valueOf(display1.getText()));
if(!sh){
if(!dgrrad){
display2.setText("sin("+String.valueOf(inb)+")"); // for sine operation
/*display2.setText("cos("+String.valueOf(inb)+")"); for sine operation
*display2.setText("tan("+String.valueOf(inb)+")"); for sine operation*/
inb=inb*0.0174532925; }
out=Math.sin(inb); // for sine operation
/* out=Math.cos(inb); for cosine operation
* out=Math.tan(inb); for tan operation*/ }
14. Source Code Explanations Contd...
else{
display2.setText("sinh("+String.valueOf(inb)+")"); // for sinh operation
/*display2.setText("cosh("+String.valueOf(inb)+")"); for cosinh operation
*display2.setText("tanh("+String.valueOf(inb)+")"); for tanh operation */
out=Math.sinh(inb); // for sinh operation
/*out=Math.cosh(inb); for cosh operation
*out=Math.tanh(inb); for tanh operation*/
}
display1.setText(String.valueOf(out)); out=0;
op=0; }”
17. Source Code Explanations Contd...
if(op==4){
ina=ina/inb;
} if(op==5){
ina=ina*inb/100;
}
display1.setText("0");
display2.setText(String.valueOf(ina)+"+"); //for addition
op=1; //for addition
/*display2.setText(String.valueOf(ina)+"-"); for subtraction
*op=2; for subtraction
*display2.setText(String.valueOf(ina)+"*"); for multiplication
*op=3; for multiplication
*display2.setText(String.valueOf(ina)+"/"); for division
*op=4; for division
18. Source Code Explanations Contd...
*display2.setText(String.valueOf(ina)+"%("); for 1 by X
*op=5; for 1 by X*/
decdisp=false; //setting boolean value false
zerodisp=false;}” //setting boolean value false
19. Source Code Explanations Contd...
ActionPerformed on Equal Operation:
“ private void equalsActionPerformed(java.awt.event.ActionEvent evt) {
inb=Double.parseDouble(String.valueOf(display1.getText()));
if(op==0){
out=inb; // if op=0 then show display1
display2.setText(String.valueOf(inb));
} if(op==1){
out=ina+inb; // if op=1 then perform addition
display2.setText(display2.getText()+String.valueOf(inb));
} if(op==2){
out=ina-inb; // if op=2 then perform subtraction
display2.setText(display2.getText()+String.valueOf(inb));
} if(op==3){
out=ina*inb; // if op=3 then perform
multiplication
20. Source Code Explanations Contd...
display2.setText(display2.getText()+String.valueOf(inb));
} if(op==4){
out=ina/inb; // if op=4 then perform division
display2.setText(display2.getText()+String.valueOf(inb));
} if(op==5){
out=ina*inb/100; // if op=5 then perform percentage
display2.setText(display2.getText()+String.valueOf(inb)+")");
} if(out > -100000000 && out < 100000000){
display1.setText(String.valueOf(out));
} else {
display1.setText("Error");
}
21. Source Code Explanations Contd...
ina=0; //initialing variable ina to 0
inb=0; //initialing variable inb to 0
out=0; //initialing variable out to 0
decdisp=false; //initialing variable decdisp to false
zerodisp=false; //initialing variable zerodisp to false
}”
22. Source Code Explanations Contd...
Executing main Function:
“public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
/*The invokeLater() method takes a Runnable object as its parameter. It sends that object to the event-dispatching thread, which
executes the run() method. This is why it's always safe for the run() method to execute Swing code.*/
public void run() {
new Calculate().setVisible(true); // reveals a Component by marking it as visible
}
});
}”