[英]How to get row from TableView?
我正在创建一个大厅应用程序,它将在java tableview上显示所有组。 用户可以加入其中有空间的组,否则他们将无法加入。
我已经能够创建它,但是我希望能够用绿色将其中有空格的组的行涂成绿色,将已满的组涂成红色。
我将在下面提供我的代码。 我收到NullPointerException,我不知道为什么。 谢谢。
private void visualGroupAvailability() {
boolean isThereSpace;
for (currentGroupsModel o : groupsTable.getItems()) {
TableRow<currentGroupsModel> currentRow = getTableRow(o.getGroupID());
int limit = o.getNumberOfUsers();
isThereSpace = checkSpaceInGroup(o);
if(isThereSpace) {
currentRow.setStyle("-fx-background-color: #" + "388e3c ");
} else {
currentRow.setStyle("-fx-background-color: #" + "ffcdd2 ");
}
}
}
private TableRow<currentGroupsModel> getTableRow(int rowIndex) {
Set<Node> tableRowCell = groupsTable.lookupAll(".table-row-cell");
TableRow<currentGroupsModel> row = null;
for (Node tableRow : tableRowCell) {
TableRow<currentGroupsModel> r = (TableRow<currentGroupsModel>) tableRow;
row = r;
}
return row;
}
公共类currentGroupsModel {
字符串groupName,groupDescription,hostName,groupType; 整数numberOfUsers,groupID;
public currentGroupsModel(String gName, String gDesc, String hostName, String groupType, Integer numberOfUsers, Integer groupID){
this.groupName = gName;
this.groupDescription = gDesc;
this.hostName = hostName;
this.groupType = groupType;
this.numberOfUsers = numberOfUsers;
this.groupID = groupID;
}
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
public String getGroupDescription() {
return groupDescription;
}
public void setGroupDescription(String groupDescription) {
this.groupDescription = groupDescription;
}
public String getHostName() {
return hostName;
}
public void setHostName(String hostName) {
this.hostName = hostName;
}
public String getGroupType() {
return groupType;
}
public void setGroupType(String groupType) {
this.groupType = groupType;
}
public Integer getNumberOfUsers() {
return numberOfUsers;
}
public void setNumberOfUsers(int numberOfUsers) {
this.numberOfUsers = numberOfUsers;
}
public Integer getGroupID(){
return this.groupID;
}
public void setGroupID(Integer newID){
this.groupID = newID;
}
}
您给我们的东西并不能真正回答这个问题。 如果存在一个我们不知道的currentGroupModel,并且一直存在红色毛发,则很难找到NullPointerException。 例如,为什么您要限制存储一些东西,却从未使用呢! 为什么要向getTableRow传递从未使用过的rowIndex? 就我所知,您的getTableRow返回表中的最后一个TableRow,而不是特定的。 在最终提供一些代码以了解currentGroupModel的内部工作之前,请先考虑解决这些问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.