2013-07-12 4 views
0

everyone.JList는 모든 요소를 ​​표시하지 않습니다.

DefaultListModel lmodel; 
lmodel=new DefaultListModel(); 
jList1.setModel(lmodel); 

의 JList는 넷빈즈 시각적 편집기에서 생성 JScrollPane1 안에 넣어 : 나는 다음과 같은 코드로 초기화 된 JPanel의 내부하는 JList 있습니다. 모델에서 몇 가지 요소를 추가하거나 제거하면 모든 것이 잘 작동합니다.

BufferedReader inputStream=new BufferedReader(new FileReader(nomeArquivo)); 
String line = inputStream.readLine(); 
while (line!=null) { 
    int i=line.indexOf("="); 
    if (i>0) { 
     lmodel.addElement(line);       
    } 
    line = inputStream.readLine(); 
}   
inputStream.close(); 
System.out.println("Final list size="+jList1.getModel().getSize());    
: 그럼에도 불구하고, 이상하게 나는 꽤 표준 텍스트 파일에서 항목을 읽는 방법이 294

에 설정되어있는 JList의이 보여줄 수있는 요소의 수에 제한이있을 것 같습니다

모든 시도와 캐치가 제자리에 있습니다. 이것은 단지 조각입니다. 독서 오류가없고 모든 것이 예외없이 잘됩니다.

400 개의 요소가 포함 된 파일을 읽으면 해당 요소 400 개가 모두 lmodel 안에 있습니다. 나중에 그것들을 저장할 수도있다. (그 방법도있다.) 메소드 끝의 println은 400이라는 숫자를 읽어 준다.

그러나 목록에는 294 개의 요소가 더 이상 표시되지 않습니다. 목록에 x 개의 요소가있는 경우 294-x 개의 요소 만 화면에 표시됩니다.

아무도 모를 일이 있습니까?

도움을 주셔서 감사합니다.

+0

['JList.setVisibleRowCount (294)'] (http://docs.oracle.com/javase/7/docs/api/javax/swing/JList.html#setVisibleRowCount%28int%29) 어딘가에. Netbeans 생성 코드를 확인하십시오. 왜 300+ 행을 모두 한 번에 화면에 표시하려고합니까? – predi

+0

Visible Row Count를 어느 위치에서 설정하지 않습니다. 심지어 lmodel의 요소 수 (jList1.setVisibleRowCount (jList1.getModel(). getSize() + 1)로 설정하려고 시도했습니다. 사용자가 자신의 목록을 처리하는 것이 내가 원하는 것입니다. 400 개의 요소를 삽입하십시오. 올바른 사용법입니다. (특히 사용자가 버그를 발견 한 사람이기 때문에 특별히 제한을 두지 않습니다. 필자는 항상 10 개 또는 20 개의 요소로 작업했습니다!) – rlinden

+1

더 나은 도움을 얻으려면 더 빨리 [SSCCE] (http://sscce.org/)를 게시하십시오. –

답변

0

JList를 ScrollPane에 넣었습니까? 목록에 표시되는 것 이상의 항목이 있으면 400 개를 모두 스크롤 할 수 있습니까? 모든 코드를 게시하지 않았으므로이 위치를 사용해보십시오.

JScrollPane scrollPane = new JScrollPane(jList1); 

스크롤 패널을 패널에 놓습니다. 또는 GUI 편집기를 사용하여 이전 JList를 제거하고 스크롤 창을 켠 다음 Jlist를 스크롤 창에 추가하십시오. 이게 도움이 되길 바란다! 아마 당신이 설정하는

+0

예, 완료되었습니다. 실제 JList 크기는 약 30 개의 요소를 볼 수 있지만 스크롤하고 294 개의 요소를 볼 수 있습니다. – rlinden

+0

위의 코드를 편집하여 수행 한 모든 작업을 표시 할 수 있습니까? JList의 뷰를 제한하지 않고 JScrollPane을 사용하면 코드를 보는 것이 매우 도움이됩니다. – booleanCube

+1

@rlinden "JList1을 삭제하고 JPanel에 새 JList1을 삽입하면 모든 것이 잘되었습니다." 다행스럽게도 그것이 내가 더 구체적이지 않은 것을 유감스럽게 생각한 것입니다. 다행 당신을 위해 일했다! – booleanCube

관련 문제