JavaSwing中的表

JavaSwing中的表,java,swing,for-loop,dictionary,Java,Swing,For Loop,Dictionary,我正在编写一个程序,它可以解析文本并像这样打印输出 LS 1 -> 3 LS 2 -> 3 LS 3 -> 2 PRP itself -> 2 PRP it -> 5 DT all -> 7 DT All -> 11 DT no -> 9 DT a -> 77 NNP Milwaukee -> 2 NNP D65 -> 1 NNP STD -> 1 NNP Gimp -> 3 NNP Constituti

我正在编写一个程序,它可以解析文本并像这样打印输出

LS  1 -> 3
LS  2 -> 3
LS  3 -> 2
PRP itself -> 2
PRP it -> 5
DT  all -> 7
DT  All -> 11
DT  no -> 9
DT  a -> 77
NNP Milwaukee -> 2
NNP D65 -> 1
NNP STD -> 1
NNP Gimp -> 3
NNP Constitution -> 1
相反,我想要像这样的东西

我试着使用JTable三个小时,但仍然不知道如何将文本排序到表中。请帮忙

示例代码

public String getTagsList() throws IOException {
    String output = "";
    for (Map.Entry<String, Map<String, Integer>> entry : tagMap.entrySet()) {
        String oa = entry.getKey();
        Map<String, Integer> words = entry.getValue();
        for (Map.Entry<String, Integer> entryWords : words.entrySet()) {
            String ob = entryWords.getKey() + " -> " + entryWords.getValue();
            output += oa + "\t" + ob + "\n";
        }
    }
    return output;
}

有成千上万的方法可以做到这一点。这是我想到的

首先,您可以将您的项目作为列添加到单独的
列表中。并保留一个变量以跟踪列的最大大小

    List<List<String>> columns = new ArrayList<>();
    int maxColumnSize = 0;
    for (Map.Entry<String, Map<String, Integer>> entry : tagMap.entrySet()) {
        List<String> column = new ArrayList<>();
        column.add(entry.getKey());
        Map<String, Integer> words = entry.getValue();
        for (Map.Entry<String, Integer> entryWords : words.entrySet()) {
            String ob = entryWords.getKey() + " -> " + entryWords.getValue();
            column.add(ob);
        }
        columns.add(column);
        if (column.size() > maxColumnSize) {
            maxColumnSize = column.size();
        }
    }
List columns=new ArrayList();
int maxColumnSize=0;
对于(Map.Entry:tagMap.entrySet()){
列表列=新的ArrayList();
column.add(entry.getKey());
Map words=entry.getValue();
for(Map.Entry entryWords:words.entrySet()){
字符串ob=entryWords.getKey()+“->”+entryWords.getValue();
添加(ob)列;
}
列。添加(列);
if(column.size()>maxColumnSize){
maxColumnSize=column.size();
}
}
然后您可以按如下方式逐行打印每一列

    String output = "";
    for (int i = 0; i < maxColumnSize; i++) {
        for (List<String> column : columns) {
            String s = "  ";
            if(i<column.size()){
                s = column.get(i);
            }
            output += s + "\t";
        }
        output += "\n";
    }
字符串输出=”;
对于(int i=0;i如果有成千上万种方法可以做到这一点,这是我想到的一种

首先,您可以将项目作为列添加到单独的
列表中,并保留一个变量来跟踪列的最大大小

    List<List<String>> columns = new ArrayList<>();
    int maxColumnSize = 0;
    for (Map.Entry<String, Map<String, Integer>> entry : tagMap.entrySet()) {
        List<String> column = new ArrayList<>();
        column.add(entry.getKey());
        Map<String, Integer> words = entry.getValue();
        for (Map.Entry<String, Integer> entryWords : words.entrySet()) {
            String ob = entryWords.getKey() + " -> " + entryWords.getValue();
            column.add(ob);
        }
        columns.add(column);
        if (column.size() > maxColumnSize) {
            maxColumnSize = column.size();
        }
    }
List columns=new ArrayList();
int maxColumnSize=0;
对于(Map.Entry:tagMap.entrySet()){
列表列=新的ArrayList();
column.add(entry.getKey());
Map words=entry.getValue();
for(Map.Entry entryWords:words.entrySet()){
字符串ob=entryWords.getKey()+“->”+entryWords.getValue();
添加(ob)列;
}
列。添加(列);
if(column.size()>maxColumnSize){
maxColumnSize=column.size();
}
}
然后您可以按如下方式逐行打印每一列

    String output = "";
    for (int i = 0; i < maxColumnSize; i++) {
        for (List<String> column : columns) {
            String s = "  ";
            if(i<column.size()){
                s = column.get(i);
            }
            output += s + "\t";
        }
        output += "\n";
    }
字符串输出=”;
对于(int i=0;i如果(i行与行之间的关系是什么?如果按
LS
列排序,其他列会产生什么影响?3小时不是很长的时间!是的……对蜉蝣来说……行与行之间没有关系,如果是LS,它应该属于一行。@Ramesh-X:为什么有更多的人试图如此消极?每个人都是一个错误。)noob在他们的生活中,我正在努力学习一些东西。我没有要求完整的代码。我只是想知道如何最好地实现它。Peace:)我想我弄错了。LS代表列表项标记,它打印出一个文件中的所有lse和出现次数。有34个不同的术语,如LS。所以我想在一个表中列出它们,标题在顶部,内容在下面。行之间的关系是什么?如果按
LS
列排序,如何会影响其他列吗?3小时不是很长的时间……是的……对蜉蝣来说……如果是LS,行与行之间没有关系,它应该属于一行。@Ramesh-X:为什么有更多的人试图如此消极?每个人在他们的一生中都是一个傻瓜,我正在努力学习一些东西。我没有要求完整的代码。我只是想知道如何最好地实现它。Peace:)我想我弄错了。LS代表列表项标记,它在一个文件中打印出所有LSE和出现次数。有34个不同的术语,如LS。所以我想在一个表中列出它们,标题在顶部,内容在下面