这是学Java的一道练习题,要求:
1.每一次移动Scrollbar得到的Value取到数组值写入Text1,每二次移动Scrollbar得到的Value取到数组值写入Text2,问题是我每一次移动,程式自动写入同样的值到Text1,text2中,不知是何原因?
2.我点击Compare按钮比较时,发现每次程式也会写入相同的值到Text1,Text2中,所以每次比较都是相同的。初学Java,请那位高手帮小弟解决一下,在此多谢!100分相送。
我写的程式如下:import java.awt.*; 
import java.awt.image.ImageObserver;
import java.applet.Applet;public class Task3 extends Applet { 
Scrollbar redslider; 
TextField text1;
TextField text2;
Label redlabel;
Button button; int CurClick = -1;
String word[]={"day","soon","tight","may","winter","soon","full","heat","moon","soon"};
String CurWord="";
int numClicks = 0;

public void init( ) {
GridBagLayout gridbag = new GridBagLayout();
        GridBagConstraints c = new GridBagConstraints();
        setLayout(gridbag); //setLayout(new GridLayout(4, 2)); 
redslider = new Scrollbar(Scrollbar.VERTICAL, 0,1,0,9);
text1 = new TextField("Text Field 1", 5);
text2 = new TextField("Text Field 2", 5);
text1.setEditable(false);
text2.setEditable(false);
redlabel = new Label("Result of Comparison");
button=new Button("Compare");

c.gridwidth = 1;        //reset to the default
  c.gridheight = 4;
    c.weighty = 4.0;
    gridbag.setConstraints(redslider, c);
    add(redslider);
    
    c.weighty = 0.0;    //reset to the default
  c.gridwidth = GridBagConstraints.REMAINDER; //end row
  c.gridheight = 1;    //reset to the default
 
  gridbag.setConstraints(text1, c);
    add(text1);

    gridbag.setConstraints(text2, c);
add(text2);

gridbag.setConstraints(redlabel, c);
add(redlabel);

gridbag.setConstraints(button, c);
add(button);

setSize(150, 100);
}  public boolean handleEvent(Event e) { 
if (e.target instanceof Scrollbar) { 
CurClick=((Scrollbar)e.target).getValue();
CurWord=word[CurClick];
numClicks++;

if (numClicks%2==1) {
text1.setText(CurWord);
} else {
text2.setText(CurWord);
}
redlabel.setText(String.valueOf(numClicks));
//return true; 


if (e.target instanceof Button) { 
if (text1.getText().equals(text2.getText())) {
redlabel.setText("Same Words");
} else {
redlabel.setText("Different Words");
}
}

return super.handleEvent(e); 
} }

解决方案 »

  1.   

    static int numClicks = 0;
      

  2.   

    按照CalvinKyle(连老天都感动得哭了)的做法,还是不行。
      

  3.   

    试试这个.
    // <applet code=Task3 width=500 height=250></applet>
    import java.awt.*; 
    import java.awt.image.ImageObserver;
    import java.applet.Applet;public class Task3 extends Applet { 
    Scrollbar redslider; 
    TextField text1;
    TextField text2;
    Label redlabel;
    Button button;int CurClick = -1;
    String word[]={"day","soon","tight","may","winter","soon","full","heat","moon","soon"};
    String CurWord="";
    int numClicks = 0;
    public void init( ) {
    GridBagLayout gridbag = new GridBagLayout();
            GridBagConstraints c = new GridBagConstraints();
            setLayout(gridbag);//setLayout(new GridLayout(4, 2)); 
    redslider = new Scrollbar(Scrollbar.VERTICAL, 0,1,0,9);
    text1 = new TextField("Text Field 1", 5);
    text2 = new TextField("Text Field 2", 5);
    text1.setEditable(false);
    text2.setEditable(false);
    redlabel = new Label("Result of Comparison");
    button=new Button("Compare");c.gridwidth = 1;      //reset to the default
     c.gridheight = 4;
        c.weighty = 4.0;
        gridbag.setConstraints(redslider, c);
        add(redslider);
        
        c.weighty = 0.0;   //reset to the default
     c.gridwidth = GridBagConstraints.REMAINDER; //end row
     c.gridheight = 1;   //reset to the default
     
     gridbag.setConstraints(text1, c);
        add(text1);    gridbag.setConstraints(text2, c);
    add(text2);gridbag.setConstraints(redlabel, c);
    add(redlabel);gridbag.setConstraints(button, c);
    add(button);setSize(150, 100);
    } public boolean handleEvent(Event e) {

    if (e.target == redslider && (e.id == Event.SCROLL_ABSOLUTE || e.id == Event.SCROLL_LINE_DOWN || e.id == Event.SCROLL_LINE_UP)) { 
    CurClick=((Scrollbar)e.target).getValue();
    CurWord=word[CurClick];

    numClicks ++;

    if (numClicks%2 == 0) 
    {
    text1.setText(CurWord); } else 
    {
    text2.setText(CurWord);
    }
    redlabel.setText(String.valueOf(numClicks));

    //button.requestFocus();
    //return true; 
    }else if (e.target == button ){//&& e.id == Event.MOUSE_UP){

    if (text1.getText().equals(text2.getText())) 
    {
    redlabel.setText("Same Words");
    } else 
    {
    redlabel.setText("Different Words");
    }
    } return super.handleEvent(e); 
    } }
      

  4.   

    记得给分啊pk3g9a (洪天)! 呵呵.