0

私の割り当ては、テキストフィールドを介して20の数値を入力し、whileループを使用して平均、中央値、および合計を出力することです。whileループを自分で理解できるはずですが、配列に数値を入力するためのテキストフィールドを取得できません。助けてください、これまでの私のコードは次のとおりです。

 import java.applet.Applet;
import java.awt.Graphics;
import java.awt.*;
import java.awt.event.*;

public class whileloopq extends Applet implements ActionListener
{
    Label label;
    TextField input;
    int[] numArray = new int[20];
    int num;

    public void init ()
    {
        Label label = new Label("Enter numbers");
        TextField input = new TextField(5);
        add(label);
        add(input);
        input.addActionListener(this);
    }

    public void actionPerformed (ActionEvent ev)
    {
        int num = Integer.parseInt(input.getText());
        int index = 0;
        numArray[index] = num;
        index++;
        input.setText("");

    }

    public void paint (Graphics graf)
    {
        graf.drawString("Array" + numArray, 25, 85);
    }
}

どんな助けでも大歓迎です。

4

3 に答える 3

1

(これが宿題であるという仮定の下で書かれた答え。)

の使用法で示すように、文字列から整数を解析する方法を知ってInteger.parseIntいますが、20文字全体を1つの整数として解析するためにそれを呼び出しています。解析するには、各文字を個別に取得する必要があります。

forループを使用し、String#substringを使用して、入力テキストを長さ1の複数の文字列にサブストリング化することをお勧めします。

または、入力テキストを空の文字列で分割してから、結果の配列を反復処理することもできます(配列の最初の文字列は空になることに注意してください)が、他のアプローチは、Javaを初めて使用する人から期待されるアプローチである可能性が高いためです。ここであなたの判断を使用する必要があります。

于 2012-08-12T19:17:48.147 に答える
0

あなたはactionPerformed()提出されたクラスから読み込もうとしていますinput.setText("");

しかし、init()あなたはそのフィールドを初期化せず、アプレットのローカル変数を作成して追加しました

TextField input = new TextField(5);

したがって、クラスフィールドはスティールnullです。に変更します

input = new TextField(5);
于 2012-08-12T19:26:10.103 に答える
0
import java.awt.*;
public class frame4array extends Frame
{
Checkbox c1[];
TextField t1[];
int i;
frame4array(String p)
{
super(p);
c1=new Checkbox[2];
t1=new TextField[2];
for(i=0;i<2;i++)
{
t1[0]=new TextField();
t1[0].setBounds(200, 50, 150, 30);
t1[1]=new TextField();
t1[1].setBounds(200, 80, 150, 30);
c1[0]=new Checkbox("Singing");
c1[0].setBackground(Color.red);
c1[0].setBounds(430,200,120,40);
c1[1]=new Checkbox("Cricket",true);
}
for(i=0;i<2;i++)
{
add(t1[i]);
add(c1[i]);
}
setFont(new Font("Arial",Font.ITALIC,40));
}
public static void main(String s[])
{
frame4array f1=new frame4array("hello");
f1.setSize(600,500);
f1.setVisible(true);
}

}
于 2021-05-27T05:57:12.783 に答える