使用带有JTable的vector <string> </string>

时间:2014-11-09 15:57:22

标签: java swing vector jtable

我有一个String类型条目的向量,形式为:

Vector<String> nameLst = new Vector<String>();
nameLst.add("Jacob");
nameLst.add("Stacey");

[...等]

我不知道条目的数量 - 因此向量而不是数组。我希望能够在故事中显示这些名字(有可能编辑)。我的问题是,JTable只使用Vector但我的实现只使用一个列表(而不是一个表) 我试图浏览nameLst的所有条目,然后在新的向量中分配:

Vector<Vector<String>> helper = new Vector<Vector<String>>
for (String nametmp : nameLst){
Vector<String> a = new Vector<String>();
a.add(nametmp);
helper.add((Vector<String>)a.clone())
}

然而,表(虽然格式正确)仍为空。我希望数据应该保持安全,不要超出范围,因为我将它克隆到辅助向量中。 有没有办法让Vector填充JTable?

编辑:示例 - 我实际上没有最少的工作示例,但相关代码是:

  1. 显示(在Gui类中):

    JPanel namPan;
    JTable namTab
    
  2. 在构造函数中:

    namePan = new JPanel();
    
  3. printNames()//方法

    public void printNames(){
    Vector<String> label= new Vector<String>();
    Vector<Vector<String>> helper = new Vector<Vector<String>>;
    for(String nametmp :nameLst){
    Vector<String> a = new Vector<String>();
    a.add(nametmp);
    helper.add((Vector<String>/*just a cast*/) a.clone());
    }
    label.add("Currently active:");
    namTab = new JTable(helper, label);
    namPan.add(new JScrollPane(namTab));
    }
    
  4. 之后我调用Gui构造函数,用一些初始名称填写名称列表并调用printNames()方法。

    我认为核心问题是格式不匹配 - 矢量看起来像[&#39; a&#39; &#39; B&#39; &#39; c&#39;]它应该是一个列向量:[a] [b] [c]。或换句话说,被视为具有一列和多行的二维矢量。

    EDIT2

    发现它 - 特别感谢Hovercraft Full Of Eels推动我做一个最小的工作示例。我找不到他上传的内容和我所做的内容之间的任何重大差异,但是当我做了最小的例子时 - 剥去了所有其他gui元素和功能,我看到了数据!
    发生了什么?我对窗口大小和面板比例(GridBagLayout)设置了一些尺寸限制,测试字符串在外面!当桌子上有整个区域时,我可以看到文字。我决定写下来,看起来像个傻瓜而不是把它推到地毯下面,让这个帖子悬空。

0 个答案:

没有答案