0

java PLを使って座席監視システムを作っています。ComputerSeats クラスに次のメソッドがあります。

public void occupySeat()
{
    seatOccupied[station-1] = true;
    mtr.showArrayIdVal().setText(stud.showField().getText());
    seat[station-1].setBackground(Color.red);
    occupiedSeatCounter++;
}

ShowArrayIdVal には が含まれてJlabel[] objectいます。このラベルの値は「空き駅」です。以前は、「空き駅」を を使用setText(stud.showField().getText())して入力した値に変更していましたJTextField。しかし、それをコンパイルするたびに、見つからないというエラーが含まれていますsettext()

4

4 に答える 4

3

スタックトレースやその他のコードがなくても正確に伝えることはできませんが、mtr.showArrayIdVal()はJLabelインスタンスを返さないと思います。

mtr.showArrayIdVal()がJLabel [](JLabelオブジェクトの配列)を返す場合は、それを呼び出す必要があります

mtr.showArrayIdVal()[i].setText(stud.showField().getText())

ここで、iは整数であり、コンパイルは成功します。もちろん、iを宣言して初期化する必要があります。

于 2012-10-06T06:51:13.837 に答える
1

mtr.showArrayIdVal()がオブジェクトを返す場合 JLabel、コードは正常に動作するはずです。

mtr.showarrayidval()私はそれが戻っていると仮定しarray of Jlable objectsます。したがって、 でオブジェクトを取得してindexから を呼び出す必要がありますsetText(...)

   for(JLable jl: mtr.showArrayIdVal()) {
        jl.setText(..)// do what ever you are setting here.
     }
于 2012-10-06T06:49:01.940 に答える
0

ShowArrayIdValにはJlabel[]オブジェクトが含まれており、このラベルの値は「VacantStation」です。

showArrayIdVal配列が含まれていると言っているようにJLabel[]...したがって、配列を呼び出すことはできませんsetText()

むしろ、返された配列を反復処理して、setText個々のラベルを呼び出すことができます。

for(JLabel label: mtr.showArrayIdVal()) {
     label.setText("Your text");
}
于 2012-10-06T06:56:38.440 に答える
0

使用するmtr.showArrayIdVal()[0].setText(stud.showField().getText());

リストの場合

使用するmtr.showArrayIdVal().get(0).setText(stud.showField().getText());

于 2012-10-06T06:46:32.650 に答える