Java 如何将StringTokenizer与jTable一起使用
我有一个jTable,我想在其中显示一个命令的结果,我使用了StringTokenizer类的一个对象来分离命令cmd的结果,并将其显示在表jTable1中,我的问题是当我使用system.out.println(st.nextToken())时,它工作正常,但当我使用数据[0][I]要在表格中显示结果,当我编译表格所有行中命令的最后一个结果时会显示该结果 这是我的代码:Java 如何将StringTokenizer与jTable一起使用,java,swing,jtable,stringtokenizer,Java,Swing,Jtable,Stringtokenizer,我有一个jTable,我想在其中显示一个命令的结果,我使用了StringTokenizer类的一个对象来分离命令cmd的结果,并将其显示在表jTable1中,我的问题是当我使用system.out.println(st.nextToken())时,它工作正常,但当我使用数据[0][I]要在表格中显示结果,当我编译表格所有行中命令的最后一个结果时会显示该结果 这是我的代码: public Object[][] data; public String title[] = {"t1
public Object[][] data;
public String title[] = {"t1","t2","t3","t4","t5"};
private void init_tab() {
data = new Object[5][5];
for(int i=0;i<5;i++){
try{
String cmd = "the command "
..... //command cmd traitment
}
I
String response = build.toString();
StringTokenizer st = new StringTokenizer(response,":");
while (st.hasMoreTokens()) {
//System.out.println(st.nextToken()) ;
data[i][0]= st.nextToken();
}
}catch(Exception e){
e.printStackTrace();}
jTable1= new JTable(data, title);
jScrollPane1.setViewportView(jTable1);
}
}
公共对象[][]数据;
公共字符串标题[]={“t1”、“t2”、“t3”、“t4”、“t5”};
私有void init_选项卡(){
数据=新对象[5][5];
对于(int i=0;i它显示命令的最后一个结果的原因是您这样编码了它。请查看程序的以下部分
String response = build.toString();
StringTokenizer st = new StringTokenizer(response,":");
while (st.hasMoreTokens()) {
//System.out.println(st.nextToken()) ;
data[i][0]= st.nextToken();
}
您正在迭代以“:”分隔的所有字符串标记,并将其添加到相同的位置数据[i][0]。同时将其添加到数据(行)中的相同索引中数组中,它将遍历所有令牌,每次都将替换先前添加的令牌。这将发生在StringTokenizer拥有更多令牌之前,并在添加最后一个令牌后从上述循环中出现。如果要在5个不同的列中显示5个令牌,请按如下所述进行修复
String response = build.toString();
StringTokenizer st = new StringTokenizer(response,":");
int j = 0;
while (st.hasMoreTokens()) {
//System.out.println(st.nextToken()) ;
data[i][j]= st.nextToken();
j++;
}
出于所有实际目的,考虑使用StringTokenizer
。它只是为了向后兼容,现在实现相同结果的首选方法是在String
类中使用split()
方法,如下所示:
String response = build.toString();
String[] st = response.split(":");
for (int j = 0; j < st.length; j++) {
data[i][j] = st[j];
}
String response=build.toString();
字符串[]st=response.split(“:”);
对于(int j=0;j
您可能还对使用Google Guava库中的拆分器类感兴趣,例如。
Iterabletokens=Splitter.on(“:”).split();
for(字符串标记:标记)
{
//做点什么
}
它是不可变的,并且有一个非常流畅的API。1)为了更快地获得更好的帮助,请发布一篇文章。2)请对代码块使用一致的逻辑缩进。3)请学习类、方法和属性名称的通用名称并一致地使用它。一个具体的例子是init\u tab()
应该是initTab()
…与读取代码一样困难:请修复格式:-)谢谢驱逐者,jTable应该返回我录制的命令的结果,然后我使用StringTokenizer分离结果并将其放入jTable,但是当我使用此代码编译时,相同的行(cmd命令的最后一个结果)在jtable的所有行中重复感谢您的回复,但是我想用split方法分离字符串结果,那么第一列的每一行都应该有分离的结果。我如何才能用下一行递增,谢谢