java小學生四則運算帶皮膚版 但我不知道為什麼同類變數卻進不了動作監聽中去

範銘祥發表於2015-04-09

---恢復內容開始---

  1 package yun;
  2 import java.util.*;
  3 import java.awt.*;
  4 import java.awt.event.ActionEvent;
  5 import java.awt.event.ActionListener;
  6 
  7 import javax.swing.*;
  8 public class number extends JFrame{
  9 
 10 /**
 11 * 作者:範銘祥
 12 * 功能:一個簡單的小學生四則運算 自動 生成系統
 13 */
 14 JPanel jp1,jp2,jp3;
 15 JLabel jlb1,jlb2;
 16 JButton jb1;
 17 JTextField jtf1,jtf2;
 18 
 19 public static void main(String[] args) 
 20 {
 21   number start=new number();
 22 }
 23 public number()
 24 {
 25     jp1=new JPanel();
 26     jp2=new JPanel();
 27     jp3=new JPanel();
 28     
 29     jlb1=new JLabel("題目");
 30     jlb2=new JLabel("你的答案:");
 31 
 32     jb1=new JButton("確定");
 33     JTextArea txtArea = new JTextArea(1,15);
 34     jtf2=new JTextField(20);
 35     final JTextArea ee = new JTextArea(1,10);
 36     //設定佈局管理
 37     this.setLayout(new GridLayout(3,1));
 38     //加入各個元件
 39     jp1.add(jlb1);
 40     jp1.add(txtArea);
 41     
 42     jp2.add(jlb2);
 43     jp2.add(jtf2);
 44     jp3.add(jb1);
 45     jp3.add(ee);
 46     //加入到JFrame
 47     this.add(jp1);
 48     this.add(jp2);
 49     this.add(jp3);
 50 //在這裡用yy方法來獲取題目 w 符號 m
 51     yy tt=new yy();
 52     double w1;
 53     double m1;
 54     String fh;
 55     w1=tt.ret1();
 56     m1=tt.ret2();
 57     fh=tt.ret3();
 58     txtArea.append(w1+fh+m1);
 59     this.setSize(400, 250);
 60     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 61     this.setVisible(true);
 62 //在這裡輸入答案
 63     double answer=0;
 64     jb1.addActionListener(new ActionListener()
 65     {
 66         public void actionPerformed(ActionEvent e)
 67         {
 68         double answer;
 69         answer = jtf2.getX();
 70         //!!!!!!!!
 71         //!!!!
 72         //這裡為什麼不能傳出去 why!!!!
 73         //!!!!
 74         //!!!!!!!!
 75         }    
 76     });
 77     
 78     if(fh.equals("+"))
 79     {
 80         if(answer==w1+m1){
 81             ee.append("正確!");
 82         }else{
 83             ee.append("錯誤!");
 84         }        
 85     }
 86     if(fh.equals("-"))
 87     {
 88             if(answer==w1-m1){
 89                 ee.append("正確!");
 90             }else{
 91                 ee.append("錯誤!");
 92             }        
 93     }
 94     if(fh.equals("*"))
 95     {
 96             if(answer==w1*m1){
 97                 ee.append("正確!");
 98             }else{
 99                 ee.append("錯誤!");
100             }        
101     }
102     if(fh.equals("/"))
103     {
104             if(answer==w1/m1){
105                 ee.append("正確!");
106             }else{
107                 ee.append("錯誤!");
108             }        
109     }        
110 
111 }
112 }
113 class yy
114 {
115     int max=4;
116     int min=1;
117     double w1,m2;
118     String ff;
119     Random random = new Random();
120 
121     //System.out.println(s); 
122     public yy()
123     {
124     int s = random.nextInt(max)%(max-min+1) + min;
125 
126     double x=random.nextInt(max-2)%(max-2-min+1) + min;
127     //這裡其實我應該用異常捕捉 但不精通 今晚補習 
128 
129     double y=random.nextInt(max-1)%(max-1-min+1) + min;
130     int y1up=(int) Math.pow(10,x);
131     int y1dn=(int) Math.pow(10,x-1);
132     int y2up=(int) Math.pow(10,y);
133     int y2dn=(int) Math.pow(10,y-1);
134     int x_y1=random.nextInt(y1up)%(y1up-y1dn+1) + y1dn;
135     int x_y2=random.nextInt(y2up)%(y2up-y2dn+1) + y2dn;
136     double w=(double)x_y1;
137     double m=(double)x_y2;
138     this.w1=w;
139     this.m2=m;
140     switch(s)
141     {
142     case 1:
143     {
144     this.ff="+"; 
145     System.out.println(w+"+"+m+"=" );
146     break;
147     }
148     case 2:
149     {
150     this.ff="-";
151     System.out.println(w+"-"+m+"=" );
152     break;
153     }
154     case 3:
155     {
156     this.ff="*";
157     System.out.println(w+"*"+m+"=" );
158     break;
159     }
160     case 4:
161     {
162     this.ff="/";
163     System.out.println(w+"/"+m+"=" );
164     break;
165     }
166 
167     }
168     }
169     public double ret1()
170     {
171         return w1;
172     }
173     public double ret2()
174     {
175         return m2;
176     }
177     public String ret3()
178     {
179         return ff;
180     }
181 }






為什麼同類變數卻進不了動作監聽中去
求教

結伴同學 曾威
http://www.cnblogs.com/zengwei35/









 

---恢復內容結束---

相關文章