2012-05-05 2 views
0

내 JList의 행의 제한된 수를 표시 제한된 행 개수를 보여 주지만, 내이 listData 벡터 내가 하나의리스트 항목에 대한 인 JPanel를 사용하여 벡터에 추가의 JList는

70 개 이상의 항목을 ...이 - > 그 후 -> mylist.setListData (theVector);

visibleRowCount의 100 또는 8로 설정 될 수

, 중요하지 않습니다 ...

편집 : 난 내 레이아웃 디자이너

EDIT2에 끌고 때문에, JScrollPane의 내 내 JList의이 : 일부 코드 ..

private void initSubjectList() { 
    try { 
     Vector listData = new Vector(); 
     Vector<Subject> subjects = Subject.loadFromDB(); 
     for (Subject actSubject : subjects) { 
      ListPanel listPanel = new ListPanel(); 
      listPanel.setSubject(actSubject); 
      JLabel textLabel = new JLabel(); 
      // ... Some properties of my label... 
      listPanel.setLayout(new BorderLayout()); 
      listPanel.add(textLabel, BorderLayout.WEST); 

      listData.add(listPanel); 
     } 

     this.list_subjects.setListData(listData); 
     this.list_subjects.setSelectedIndex(0); 
     this.list_subjects.updateUI(); 
     initGradeList(grades, 0); 
    } catch (Exception ex) { 
     _parent.showError(ErrorPanel.TYPE_OKAY, ErrorPanel.TEXT_SQLEXCEPTION); 
    } 
+0

ScrollPane에 JList를 포함 시켰습니까? – Bartvbl

+0

그래, 난 scrollpane에 내 목록을 가지고 –

+0

아마 그냥 문제를 보여주기에 충분하도록 단순화 된 몇 가지 코드를 게시 할 수 있을까요? 자신이 실제로하고있는 것을 보지 않고 무엇을 잘못하고 있는지 말하기는 매우 어렵습니다. – Bartvbl

답변

1

당신은 그냥 크기를 조정할 수 있도록 레이아웃에 myList에 추가하지 않으면 궁금해, 그래서 너무 작. 아니면 보여주지 않음으로써 정확히 무엇을 의미합니까? 예를 들어, BorderLayout의 중심에 추가하면, 적어도 윈도우의 크기를 변경하면 작동합니까?

+0

또는 크기를 변경하지 않고 스크롤 할 수있게하려면 @Guillaume을 참조하십시오. 님의 답변 –

3

JScrollPane의에서 JList를 넣어 :


여기에 전체 작업 예입니다

import java.util.Vector; 

import javax.swing.JFrame; 
import javax.swing.JList; 
import javax.swing.JScrollPane; 
import javax.swing.SwingUtilities; 

public class Test2 { 
    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 

      @Override 
      public void run() { 
       initUI(); 
      } 
     }); 
    } 

    protected static void initUI() { 
     JFrame frame = new JFrame("test"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     Vector<String> data = new Vector<String>(); 
     for (int i = 1; i < 100; i++) { 
      data.add("Entry " + i); 
     } 
     JList list = new JList(data); 
     list.setVisibleRowCount(8); 
     JScrollPane scrollPane = new JScrollPane(list); 
     frame.add(scrollPane); 
     frame.pack(); 
     frame.setVisible(true); 
    } 
} 
+0

보기 @ 내 편집 - jscrollpane에 포함되어 있습니다 –

+2

@ Christian'fuzi'Orgler는 코드를 표시하지 않고 모두 그것이 어떻게 작동하는지 보여줄 수 있습니다. 당신은 뭔가 잘못하고 있어야하지만 문제를 재현하는 코드를 보지 않으면 그것을 추측 할 수 없습니다. SSCCE 게시 http://sscce.org –

+0

@ Christian'fuzi'Orgler 게시 한 코드에 사용자가 언급 한 스크롤 패널이 표시되지 않습니다. – Robin

0

JList의 높이를 늘려보십시오.

+0

아마이 답변을 더 자세히 설명 할 수 있습니다. – JorgeHortelano