从JTable单元获取int值

时间:2015-03-13 23:18:27

标签: java

我正在编写一个将用户输入值放入JTable的程序,一列包含siteNumber。我需要能够检查是否已使用该siteNumber。继承我的getValueAt()代码。

public Object getValueAt(int row, int col) {
    switch(col) {
    case 0:
        return (listSites.get(row).getNameReserving());

    case 1:
        return (DateFormat.getDateInstance(DateFormat.SHORT).
                format(listSites.get(row).getCheckIn().getTime()));

    case 2:
        return (listSites.get(row).getDaysStaying());

    case 3:
        return (listSites.get(row).getSiteNumber());

    case 4:
        if(listSites.get(row) instanceof Tent)
            return("Tents: " + ((Tent) listSites.get(row))
                    .getNumOfTenters());
        else
            return ("Power bought: " + ((RV) listSites.get(row))
                    .getPower() + " Amps");

    default:
        return null;
    }
}

理想情况下,这将是一个简单的if(getValueAt(row,col)== siteNumber)检查,但这是比较一个Object和一个Integer,我无法找到解决这个问题的方法?这是一个大学项目,所以很多不是我原来的想法,我只是想弄清楚他们是怎么想我这样做的。

listSites是站点的ArrayList,是我的超类。

对不起,如果我是傻瓜,但我真的很想搞清楚这一点。

1 个答案:

答案 0 :(得分:0)

我不确定您的确切问题,但如果您从第3行获取某个项目,则返回的内容与此调用所指定的相同:return (listSites.get(row).getSiteNumber());。并且您可以将返回的对象强制转换为Site类的getSiteNumber()方法指定的类型。我假设它正在返回......一个整数(你不告诉我们)?如果是这样,将其投射到那并使用它。


您需要的声音与JTable或getValueAt(...)方法几乎没有关系。相反,听起来您需要输入验证用户尝试输入数据的位置,这可能在您的用户输入对话框代码中。在该代码中,您将搜索listSites集合,确保没有输入重复的站点号,如果是,则警告用户他们的错误,并阻止数据输入。也许您想使用附加到JTextField的InputVerifier