0

これは私が投稿したコードです:

          import java.awt.*;
  import java.awt.event.*;
  import java.applet.*;
    /* <applet code="front" width=500 height=500></applet> */
    public class front extends Applet implements ActionListener {
  String msg="";
    TextArea text,text1;
  TextField txt;
   Button load, enter;

  public void init() {
     enter=new Button("Enter");
    load=new Button("Load");
   txt=new TextField(5);
    text=new TextArea(10,15);

   add(load);
add(text);

add(txt);
add(enter);

load.addActionListener(this);
txt.addActionListener(this);
enter.addActionListener(this);
 }

 public void actionPerformed(ActionEvent ae)
    {
       String str = ae.getActionCommand();
       if(str.equals("Load")) {
             msg = "You pressed Load";
        } else {
           if(txt.getText().toString().equals ("6")) {
         msg="Set the text for 6";
         text.setText("Text");
          } else {
        msg="Invalid number";
            text.setText("");
         }
        }
       repaint();
         }

          public void paint(Graphics g) {
          g.drawString(msg,350,250);
        }
        }

ご覧のとおり、テキストフィールドの値が6に等しい場合にメッセージが表示されますが、5〜6の範囲にある場合にのみそのメッセージを表示したいと考えています。だから私は次のコードを試しました

import java.awt.*;
  import java.awt.event.*;
  import java.applet.*;
    /* <applet code="front" width=500 height=500></applet> */
    public class front extends Applet implements ActionListener {
  String msg="";
    TextArea text,text1;
  TextField txt;
   Button load, enter;

  public void init() {
     enter=new Button("Enter");
    load=new Button("Load");
   txt=new TextField(5);
    text=new TextArea(10,15);

   add(load);
add(text);

add(txt);
add(enter);

load.addActionListener(this);
txt.addActionListener(this);
enter.addActionListener(this);
 }

 public void actionPerformed(ActionEvent ae)
    {
       String str = ae.getActionCommand();
       if(str.equals("Load")) {
             msg = "You pressed Load";
        } else {

        String a = txt.getText();
           int a1=Integer.parseInt(a); //I also used Integer.valueOf(a)
          if(a1>="5"&&a1<="6") 
           {
         msg="Set the text";
         text.setText("Text");
          } else {
        msg="Invalid number";
            text.setText("");
         }
        }
       repaint();
         }

          public void paint(Graphics g) {
          g.drawString(msg,350,250);
        }
        }

しかし、このコードをコンパイルすると、次のエラーが発生します。

演算子 >= は int、java.lang.String に適用できません 演算子 <= は int、java.lang.String に適用できません

getText() が文字列を返すことはわかっているので、parseInt を使用して整数に変換しましたが、エラーを理解できません。

4

1 に答える 1

1

int を文字列値と比較しようとしています。

  if(a1>="5"&&a1<="6") // 5 and 6 are string representation whereas a1 is int

する必要がある

   if(a1>=5 && a1<=6)  // 5 and 6 are int representation

注: 文字列を比較する場合は、.equals() を使用します。

于 2013-04-09T19:06:28.917 に答える