我正在使用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()
。
答案 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");
}