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。所以我想在一个表中列出它们,标题在顶部,内容在下面