Fir*_*iew 2 java arrays swing exception jtextarea
我正在为文本文件进行自定义验证.这是第一次对整个文件进行验证.如果有错误,则显示在另一个JTextArea中.之后,仅对那些可见的部分进行验证.我的问题是我无法存储以前的错误并结合当前显示的错误.例如,第一次,我在第1行,第5行,第6行,第100行,第500行得到错误.从下次可见部分将是1-50行,验证将仅针对1-50进行,因此100和500的错误消失了.我通过将先前的错误存储在临时变量中来尝试它,接下来的问题是,现在私有错误将只变为1-50,有人可以告诉我如何去做吗?
我试过的代码,
private void displayError() {
errorText.setText(null);
String err = null;
try{
//tempErrors
if(!prevErrors.isEmpty()){
for(int i=0; i< prevErrors.size(); i++){
err = prevErrors.get(i).toString();
if(!errors.contains(err)){
errors.add(prevErrors.get(i).toString());
}
}
}
}
catch(Exception ex){
System.out.println(ex);
}
Iterator it = errors.iterator();
while(it.hasNext()){
errorText.append(it.next() + "\n");
}
prevErrors = new ArrayList();
for(int i=0; i< errors.size(); i++){
prevErrors.add(errors.get(i).toString());
}
}
Run Code Online (Sandbox Code Playgroud)
使用以下方法可以更简单地解决您的问题TreeMap:
TreeMap<Integer, String>并调用它errors.(键是行号,值是错误信息.)errors使用找到的错误(和行)填充-map当文件的一部分可见时,您可以使用该subMap方法获取该部分中的错误:
SortedMap<Integer, String> visibleErrors = errors.subMap(fromLine, toLine + 1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |