java - Call static method from one class to jframe class -


hi java expert, trying learn java. practising basic problem. in case, idea take 2 number user , calculate numbers based on user demand (plus/minus). can trying implement problem in jframe , have failed achieve want do!! getting error when trying pass numbers via window.number1 , window.number2. error message :

window cannot resolved variable 

so can me figure out need change programme.

calculate.java

package day1.examples;  public class calculate {     double number1;     double number2;     public double[] calculatenumber() {         double plus = number1+number2;         double minus = number1-number2;         return new double[] {plus,minus};      }  } 

testcalculate.java

package day1.examples;  import java.awt.eventqueue; import java.awt.window;  import javax.swing.jframe; import javax.swing.joptionpane; import javax.swing.jtextfield; import javax.swing.jbutton; import java.awt.event.actionlistener; import java.awt.event.actionevent; import javax.swing.jlabel; import java.awt.font; import javax.swing.jcombobox; import javax.swing.defaultcomboboxmodel;  public class testcalculate {      private jframe frame;     private jtextfield textfieldnum1;     private jtextfield textfieldnum2;     private jtextfield textfieldtotres;     private jlabel lblnewtlabeltotnum;     private jlabel lblnewlabelnum1;     private jlabel lblnewlabelnum2;     private jcombobox<object> comboboxnum;     private double totalres;     private string itemselect;      /**      * launch application.      */     public static void main(string[] args) {         eventqueue.invokelater(new runnable() {             public void run() {                 try {                     testcalculate window = new testcalculate();                     window.frame.setvisible(true);                 } catch (exception e) {                     e.printstacktrace();                 }             }         });     }      /**      * create application.      */     public testcalculate() {         initialize();      }      /**      * initialize contents of frame.      */     private void initialize() {         frame = new jframe();         frame.setbounds(100, 100, 450, 300);         frame.setdefaultcloseoperation(jframe.exit_on_close);         frame.getcontentpane().setlayout(null);          textfieldnum1 = new jtextfield();         textfieldnum1.setbounds(10, 37, 106, 25);         frame.getcontentpane().add(textfieldnum1);         textfieldnum1.setcolumns(10);          textfieldnum2 = new jtextfield();         textfieldnum2.setbounds(194, 37, 106, 25);         frame.getcontentpane().add(textfieldnum2);         textfieldnum2.setcolumns(10);          jbutton btnnewsbuttonenter = new jbutton("enter");         btnnewsbuttonenter.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 final double num1;                 final double num2;                 try {                     num1 = double.parsedouble(textfieldnum1.gettext());                     num2 =double.parsedouble(textfieldnum2.gettext());                     window.number1 = num1;                     window.number2 = num2;                     comboboxnum.addactionlistener(new actionlistener() {                      if ((comboboxnum.getselecteditem()) == "plus") {                         totalres = window.calculatetotalpay()[0];                         itemselect ="plus";                     } else if ((comboboxnum.getselecteditem()) == "minus") {                         totalres = window.calculatetotalpay()[1];                         itemselect ="minus";                     }                     if (itemselect == "plus" || itemselect == "minus"){                         textfieldtotres.settext(double.tostring(totalres));                     } else {                         joptionpane.showmessagedialog(null, "enter valid option");                     }                    } catch (exception ex) {                     joptionpane.showmessagedialog(null, "enter valid number");                 }             }         });          jbutton btnnewbuttonclear = new jbutton("clear");         btnnewbuttonclear.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 reset();             }          });          btnnewsbuttonenter.setbounds(20, 74, 84, 25);         frame.getcontentpane().add(btnnewsbuttonenter);         btnnewbuttonclear.setbounds(204, 74, 84, 25);         frame.getcontentpane().add(btnnewbuttonclear);          textfieldtotres = new jtextfield();         textfieldtotres.setbounds(198, 155, 200, 50);         frame.getcontentpane().add(textfieldtotres);         textfieldtotres.setcolumns(10);          lblnewtlabeltotnum = new jlabel("result");         lblnewtlabeltotnum.setfont(new font("garuda", font.bold | font.italic, 14));         lblnewtlabeltotnum.setbounds(29, 162, 106, 34);         frame.getcontentpane().add(lblnewtlabeltotnum);          lblnewlabelnum1 = new jlabel("enter 1st number");         lblnewlabelnum1.setbounds(10, 0, 106, 34);         frame.getcontentpane().add(lblnewlabelnum1);          lblnewlabelnum2 = new jlabel("enter 2nd number");         lblnewlabelnum2.setbounds(194, 0, 97, 40);         frame.getcontentpane().add(lblnewlabelnum2);          comboboxnum = new jcombobox<object>();         comboboxnum.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 system.out.println(comboboxnum.getselecteditem());             }         });         comboboxnum.setmodel(new defaultcomboboxmodel<object>(new string[] {"--------------", "plus", "minus"}));         comboboxnum.setbounds(331, 37, 58, 40);         frame.getcontentpane().add(comboboxnum);        }      public void reset() {         textfieldnum1.settext("");         textfieldnum2.settext("");         textfieldtotres.settext("");      } } 

  • you never instantiate calculate class.
  • you name testcalculate instance "window", refer member variables in calculate (e.g., window.number1) not in testcalculate.
  • you adding actionlistener comboboxnum inside of actionperformed method btnnewsbuttonenter actionlistener. move nested actionlistener out of method.