我有一个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?
编辑:示例 - 我实际上没有最少的工作示例,但相关代码是:
显示(在Gui类中):
JPanel namPan;
JTable namTab
在构造函数中:
namePan = new JPanel();
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));
}
之后我调用Gui构造函数,用一些初始名称填写名称列表并调用printNames()方法。
我认为核心问题是格式不匹配 - 矢量看起来像[&#39; a&#39; &#39; B&#39; &#39; c&#39;]它应该是一个列向量:[a] [b] [c]。或换句话说,被视为具有一列和多行的二维矢量。
EDIT2
发现它 - 特别感谢Hovercraft Full Of Eels推动我做一个最小的工作示例。我找不到他上传的内容和我所做的内容之间的任何重大差异,但是当我做了最小的例子时 - 剥去了所有其他gui元素和功能,我看到了数据!
发生了什么?我对窗口大小和面板比例(GridBagLayout)设置了一些尺寸限制,测试字符串在外面!当桌子上有整个区域时,我可以看到文字。我决定写下来,看起来像个傻瓜而不是把它推到地毯下面,让这个帖子悬空。