Jtable JScrollPane中的列未显示正确的值

时间:2014-01-28 22:42:18

标签: java swing jtable

我有一个JScroll面板和一个JTable。在第一列中,我渲染一个图像,在第二列中,有一个部分列表,这些部分被选择在JScroll面板的图像面板中渲染。现在,我想在列的右侧添加另一列,其中列出了所选的部分列表,这将显示为列表中的每个选定部分计算的一些参数。我在列的标题中添加了一列,但每当我在列中添加一个新的部分列表时,同样的值也出现在最后一列中,而是一些计算的结果与每个部分相关联。定义方法setData的类是TrafficObserveModel,调用该方法的类是btAddObserverActionPerformed。 “类”部分用于在地图上绘制drowing行,并将它们绑定在整行中。

这是我的代码:

首先我声明了这些:

    public class TrafficObserveModel extends AbstractTableModel {

private static final long serialVersionUID = 8564695664401462480L;
    private Vector<Section> daten = new Vector<Section>(0);
    private String[]        header = {"Section","calcRGY"};

    public void setData(Vector<Section> daten){ 

//public void setData(Vector<Section> daten, int[] traffic) {

    this.daten = daten;

    // this.traffic=traffic; //28.01

fireTableDataChanged();
}

,另一个调用方法setData的类是:

            private void btAddObserverActionPerformed(ActionEvent evt) {
    if(cobSections.getSelectedIndex() != -1) {
        Section sectionToAdd = (Section)cobSections.getSelectedItem();
        boolean duplicate = false;

        for(Section section : observeTraffic) {
            if(section.getId().equals(sectionToAdd.getId())) {
                duplicate = true;
            }
        }

        if(!duplicate) {
            observeTraffic.add(sectionToAdd);

                            modelObserve.setData(observeTraffic);

            imagePanel.repaint();
        }
         }
         }

我在//之后尝试了代码(以//开头的两行) 但结果证明是错误的,事实上没有任何改变,我再次在两列中得到相同的值。

有人可以帮帮我吗?

非常感谢。

我添加了你提到过的一些东西。现在更清楚了吗?实际上,地图和它的屏幕截图显示在地图前面的窗口中。在该窗口上可以绘制线条,而缓冲图像包含在地图上绘制的部分(线条)。在窗口中还有一个位于滚动窗格中的表格,在表格的左栏中有一个图像面板,其中显示缓冲的图像,以及一个包含所有部分的列。在该列中,我想为行中的每个部分添加不同颜色的像素数。

getValueAt方法由:

给出
      public Object getValueAt(int row, int col) {
      return (Section)daten.elementAt(row);
  }

0 个答案:

没有答案