2016-09-23 7 views
1

내 코드에 문제가 있습니다. 다차원 문자열 배열 [] []이 (가) 있으며 목록을 만들려합니다. 각 배열 [] 요소에 대해 값이있는 새 목록을 원합니다. 예를 들어 4 개의 목록이있었습니다. 목록 1 모자 3 값, 목록 2는 1 값, 목록 3은 4 값, 목록 4는 2 값을가집니다. JList를 사용했을 때이 기능이 잘 작동했습니다. 이 나는 배열의 각 값에 그 값의 모든 :DefaultListModel을 사용하여 여러 값 목록을 만드는 방법

protected static JComponent getButtonCluster() { 
    contentPanel.removeAll(); 
    contentPanel.setLayout(new GridLayout(0,2, 5, 5)); 
    contentPanel.setBorder(new EmptyBorder(10,0,0,0)); 
    for (int i=0; i < StringArray.length; i++) { 
     listbox = new JList(StringArray[i]); 
     contentPanel.add(listbox); 
    } 
    return contentPanel; 
} 

위해 가지고하지만 지금은 내가 값을 클릭하여 값을 변경하려면 때문에 DefaultListModel 만 JList의에서 변경했다. 이제 모든 목록에는 배열의 모든 값이 있습니다. 따라서 4 개의 상자에는 모두 10 개의 요소가 있습니다.

각 목록의 값이 고유하도록 내 문제를 해결하려면 어떻게해야합니까?

+0

내 답변을 게시 한 이후에 내가 글을 편집 한 것을 볼 수 있지만 내 대답은 여전히 ​​유효합니다. 'new DefaultListModel ();'는 루프 외부에 있으므로 모든 JList 객체 중에서 모델의 단일 인스턴스를 공유하게됩니다. –

답변

0

이전에는 루프를 통과 할 때마다 new JList을 생성했습니다. 새 코드에서는 루프를 통과 할 때마다 new 모델을 만들지 않으므로 매번 기존 모델에 더 많은 것을 추가하는 것입니다.

+0

네 말이 맞아. 나는 이것을 어떻게 볼 수 없었습니다. 감사! :) – asgart

+0

때때로 이런 것들을 간과하기 쉽습니다. 다행히 도울 수있어 :) –