如何修复此错误:找不到符号 - 方法setText(java.lang.String)

时间:2012-10-06 06:44:40

标签: java methods

我正在使用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 个答案:

答案 0 :(得分:3)

在没有堆栈跟踪和更多代码的情况下无法准确判断,但我的猜测是mtr.showArrayIdVal()不返回JLabel实例。

如果mtr.showArrayIdVal()返回JLabel [](JLabel对象数组),你应该调用它

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

其中i是整数,编译将通过 - 当然你必须声明并初始化i。

答案 1 :(得分: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.
     }

答案 2 :(得分:0)

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

包含列表

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

答案 3 :(得分:0)

  

ShowArrayIdVal包含一个Jlabel []对象,该标签的值为   “空置站”

正如您所说showArrayIdVal包含JLabel[]数组...所以,您无法在数组上调用setText() ..

相反,您可以迭代返回数组,并在单个标签上调用setText ..

for(JLabel label: mtr.showArrayIdVal()) {
     label.setText("Your text");
}